批处理运行中的Visual Studio单元测试只进行一次静态初始化吗?
这似乎是这样。例如,我有一个在类中具有缓存信息的静态对象。我在两个单元测试中使用这个类。如果我单独运行它们运行正常。如果我一起运行它们,我必须再次明确清除缓存。
所以当我运行'Test1'和'Test2'时,当我开始运行'Test2'时,'Test1'的静态信息就会被保留。
我目前正在重写我的测试,但是我有什么可以解决这个问题吗?顺便说一句,静态信息当然不是我测试本身的一部分,但是我必须运行测试的模块的一部分。
答案 0 :(得分:1)
静态是静态的。
这些变量(和构造函数)是不自动“重置”,除非每个测试使用新的Application Domain(或.NET进程),但事实并非如此。< / p>
解决方案是在单元测试中不使用静态(或实际上任何)状态而不是设置或完全包含在测试本身内。