I'm having trouble with some MSTest unit tests that pass when I run them individually but fail when I run the entire unit test class. The tests test some code that SLaks helped me with earlier, and he warned me what I was doing wasn't thread-safe. However, now my code is more complicated and I don't know how to go about making it thread-safe. Here's what I have:
public static class DLLConfig
{
private static string _domain;
public static string Domain
{
get
{
return _domain = AlwaysReadFromFile
? readCredentialFromFile(DOMAIN_TAG)
: _domain ?? readCredentialFromFile(DOMAIN_TAG);
}
}
}
And my test is simple:
string expected = "the value I know exists in the file";
string actual = DLLConfig.Domain;
Assert.AreEqual(expected, actual);
When I run this test by itself, it passes. When I run it alongside all the other tests in the test class (which perform similar checks on different properties), actual
is null
and the test fails. I note this is not a problem with a property whose type is a custom Enum
type; maybe I'm having this problem with the Domain
property because it is a string
? Or maybe it's a multi-threaded issue with how MSTest works?