У меня проблемы с некоторыми модульными тестами MSTest, которые проходят, когда я запускаю их по отдельности, но не выполняются, когда я запускаю весь класс модульных тестов. Тесты проверяют некоторый код, который SLaks помог мне с более ранним , и он предупредил меня, что я делаю не поточно-ориентированно. Однако теперь мой код стал более сложным, и я не знаю, как сделать его потокобезопасным. Вот что у меня есть:
public static class DLLConfig
{
private static string _domain;
public static string Domain
{
get
{
return _domain = AlwaysReadFromFile
? readCredentialFromFile(DOMAIN_TAG)
: _domain ?? readCredentialFromFile(DOMAIN_TAG);
}
}
}
И мой тест прост:
string expected = "the value I know exists in the file";
string actual = DLLConfig.Domain;
Assert.AreEqual(expected, actual);
Когда я запускаю этот тест самостоятельно, он проходит. Когда я запускаю его вместе со всеми другими тестами в классе тестов (которые выполняют аналогичные проверки для различных свойств), actual
равен null
, и тест не пройден. Я отмечаю, что это не проблема со свойством, тип которого является пользовательским типом Enum
; может быть у меня эта проблема со свойством Domain
, потому что это string
? Или, может быть, это многопоточная проблема с тем, как работает MSTest?