edd*_*oll 14 c# unit-testing xunit.net vstest
我正在整理一堆新的单元测试,作为CI工作一起运行.我使用vstest.console.exe而不是mstest.exe主要是因为它能够从几个框架运行测试,但现在焦点是几个xUnit dll.这些作业是作为Jenkins管道的一部分运行的.
我已经在几个开发盒上成功测试了所有内容,但到目前为止,烦人的测试发现在任何CI构建盒上都没有.这是在添加0.99.8 xUnit测试适配器vsix(也用0.99.7测试)之后.xUnit dll是使用2.0.0.2378 beta nuget版本的xUnit构建的.
我用最简单的dll复制了这些症状,使用一种公共测试方法,在我自己的盒子上工作正常,不在任何构建盒上工作.在Windows 2012上,部署环境非常简单,VS2012安装和xUnit测试适配器.
我通过vstest exe配置文件启用了TpTrace日志记录,一切看起来都很好.我想我正在寻找一种方法来进一步解决问题(可能是跟踪xUnit发现过程)或解决问题.我更喜欢保留使用vstest控制台以简化运行几个框架.
我也通过xUnit codeplex网站写了这个问题.
我已经查看了这篇SO帖子,但没有一个建议的解决方案在这里有意义.
Phi*_*ppe 28
我花了很长时间才找到如何使用vstest.console.exe
和xunit for VS2013 的解决方案,所以我认为值得花点时间在这里解释我是如何为大家做的...
第一步是按照此处的说明在xunit.runner.visualstudio
xunit项目中安装pre-release nuget软件包,以便能够从Visual Studio运行xunit测试.
然后,当您运行vstest.console.exe
命令时,您必须使用该参数/TestAdapterPath
.
您的命令行应该看起来像某些东西(xunit适配器的路径在这里是相对的,您可以将其置于绝对位置或根据活动目录进行调整):
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" c:\path\to\your\assembly.to.test.dll /TestAdapterPath:".\packages\xunit.runner.visualstudio.0.99.9-build1021\build\_common\"
Run Code Online (Sandbox Code Playgroud)
编辑:因为适配器dll被复制到输出文件夹,我们可以简化命令行给出路径"." 该/TestAdapterPath
选项:
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" c:\path\to\your\assembly.to.test.dll /TestAdapterPath:"."
Run Code Online (Sandbox Code Playgroud)
有关信息,它也适用于NUnit,nuget包NUnitTestAdapter
和命令:
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" c:\path\to\your\assembly.to.test.dll /TestAdapterPath:"."
Run Code Online (Sandbox Code Playgroud)
可以,这样就可以解决问题,但是在进行了一些令人沮丧的故障排除后,我将介绍一些故障排除方法,以防它对某人有用。问题是xunit.execution.dll与包含测试的dll在同一文件夹中不可用。这是xunit发现所必需的。我只是来这里的:
通过确保将dll复制到构建框上的该文件夹来解决问题。
归档时间: |
|
查看次数: |
8686 次 |
最近记录: |