Visual Studio 2012中的单元测试问题

Dav*_*d A 19 unit-testing visual-studio-2012

每当我尝试从Visual Studio 2012中的测试套件中运行任何测试时,我都会得到

测试失败 - [测试方法名称]

消息:无法设置执行上下文以运行测试

并且我的测试甚至没有开始(即测试失败的来源指向测试方法的开头:

here - > TEST_METHOD([test method name]){

}

这条消息意味着什么,它可能是什么原因出现,我应该怎样做才能使我的测试正常运行?

Dav*_*d A 20

经过一些更多的研究后,我意识到我忽略了这样一个事实:我更改了包含被测方法的项目的"输出目录"(这是一个.dll),并且与我的测试项目库不在同一个文件夹中,因此给了我消息:

消息:无法设置执行上下文以运行测试

因此,通过确保包含测试中的方法的.dll与我的测试项目库位于同一文件夹中来解决问题,以便在运行时我的测试项目可以找到.dll.


小智 16

我有同样的问题,前面提到的建议没有为我解决.我的项目使用了一些第三方库,并且在我的VS项目的编译器和链接器设置中正确设置了这些库的路径.

事实证明,VS测试引擎无法找到库,因此我将这些库的路径添加到PATH环境变量中.这为我解决了这个问题.

提示:尝试使用VSTest.Console.exe从命令行运行单元测试.错误消息帮助我更轻松地调试我的问题.

  • +1表示运行VSTest.Console.exe的提示.我添加了一个带有构建后副本的.props文件,以便将所有DLL依赖项复制到定义的$(OutDir).此外,这个问题和答案适用于VS 2015(这就是我正在使用的). (2认同)
  • 只是为了记录 - 使用`VSTest.Console.exe`,必须打开`Visual Studio的开发人员命令提示符......'.在那里,可以通过找到适当的DLL然后调用`VSTest.Console.exe/Platform:x64 UnitTest.xyz.dll`来运行单元测试.(x86代表32位) (2认同)

小智 8

对于那些寻找其他答案的人来说,这是找到所需的所有DLL的问题.我按照上面的建议让测试dll和dll在同一位置进行测试,但仍然出现此错误.

我的测试DLL在其原生环境中找不到它的子DLL.您可以通过运行depends.exe找出丢失的内容.将这些其他DLL的位置添加到我的路径解决了问题,现在一切正常.