我在Visual Studio 2010中进行单元测试时遇到了奇怪的问题。 当我使用“Debug test”(没有任何断点)时,测试通过,但在使用“Run test”时失败。 这个测试使用外部dll文件,所以我无法正确地调试它。
你知道为什么会出现这样的情况吗? 为什么“Debug test”和“Run test”不同,而其他参数都相同?
我在Visual Studio 2010中进行单元测试时遇到了奇怪的问题。 当我使用“Debug test”(没有任何断点)时,测试通过,但在使用“Run test”时失败。 这个测试使用外部dll文件,所以我无法正确地调试它。
你知道为什么会出现这样的情况吗? 为什么“Debug test”和“Run test”不同,而其他参数都相同?
将您的解决方案从Debug模式切换到Release模式,进行完整的构建,然后切换回Debug模式并重试,让我知道结果,我认为测试将会通过....
有很多原因可以导致这种情况,但要确定其中一个原因,您需要提供一些可供我们处理的代码。
可能是代码被排除:
#ifdef _DEBUG
//do something
#endif
这段代码只会在调试模式下执行。
它可能是优化的结果。虽然通常不会影响行为,但您不应该依赖于析构函数或复制构造函数被调用。
如果您正在代码内部进行任何修改,那么这也可能只适用于调试。
CondtionalAttribute
或#if Debug
段落?在第三方库中,它们在调试模式和发布模式下可能会以不同的方式处理事情。 - Oded