批处理运行中的Visual Studio单元测试只进行一次静态初始化吗?

时间:2014-08-29 11:52:39

标签: unit-testing visual-studio-2012

批处理运行中的Visual Studio单元测试只进行一次静态初始化吗?

这似乎是这样。例如,我有一个在类中具有缓存信息的静态对象。我在两个单元测试中使用这个类。如果我单独运行它们运行正常。如果我一起运行它们,我必须再次明确清除缓存。

所以当我运行'Test1'和'Test2'时,当我开始运行'Test2'时,'Test1'的静态信息就会被保留。

我目前正在重写我的测试,但是我有什么可以解决这个问题吗?顺便说一句,静态信息当然不是我测试本身的一部分,但是我必须运行测试的模块的一部分。

1 个答案:

答案 0 :(得分:1)

静态是静态的。

这些变量(和构造函数)是自动“重置”,除非每个测试使用新的Application Domain(或.NET进程),但事实并非如此。< / p>

解决方案是在单元测试中不使用静态(或实际上任何)状态而不是设置或完全包含在测试本身内。