我在一些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工作方式的多线程问题?
[TestCleanup]
或[TestInitialize]
方法。 - Sarah Vessels