gpt4 book ai didi

c# - vstest.console.exe 未发现 xunit 测试

转载 作者:可可西里 更新时间:2023-11-01 07:51:01 31 4
gpt4 key购买 nike

我正在整理一组新的单元测试,以作为 CI 作业一起运行。我使用 vstest.console.exe 而不是 mstest.exe 主要是因为它能够从多个框架运行测试,但现在的重点是一些 xUnit dll。这些作业作为 Jenkins 管道的一部分运行。

我已经在几个开发箱上成功地测试了所有内容,但令人恼火的是,到目前为止,测试发现在任何 CI 构建箱上都不起作用。这是在添加 0.99.8 xUnit 测试适配器 vsix(也使用 0.99.7 测试)之后。 xUnit dll 是针对 4.5 使用 xUnit 的 2.0.0.2378 beta nuget 版本构建的。

我已经用尽可能简单的 dll 重现了这些症状,使用了一个公共(public)测试方法,在我自己的盒子上工作正常,而不是在任何构建盒子上工作。部署环境非常简单,在 Windows 2012 上安装了 VS2012 和 xUnit 测试适配器。

我已经通过 vstest exe 配置文件启用了 TpTrace 日志记录,一切看起来都很好。我想我正在寻找一种方法来进一步解决问题(可能跟踪 xUnit 发现过程)或解决问题。我宁愿保留使用 vstest 控制台,以简化运行多个框架的操作。

我已经通过 xUnit codeplex 记录了这个问题网站也是如此。

我已经检查过这个 SO post但这里没有任何建议的解决方案有意义。

最佳答案

我花了很长时间才找到如何使用 vstest.console.exe 和 xunit for VS2013 的解决方案,所以我认为值得花时间在这里为大家解释一下我是如何做的。 ..

第一步是按照说明进行操作here在需要它的 xunit 项目中安装预发布的 xunit.runner.visualstudio 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\"

编辑:因为适配器 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:"."

有关信息,它还适用于 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:"."

关于c# - vstest.console.exe 未发现 xunit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26629647/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com