我们目前正在将单元测试从MSTest迁移到NUnit (版本3.2.1),但是在使用TFS.xaml构建定义运行NUnit测试时遇到了问题。TFS构建定义使用规则“在与**\*.test*.dll匹配的程序集中运行测试”。对于我的NUnit测试项目,我已经下载、安装和引用了以下NuGet软件包:
1) NUnit v3.2.1
2) NUnit3TestAdapter v3.0.10
在VS(测试资源管理器)中执行我的测试非常完美,我认为这些步骤足以确保它们也作为CI构建的一部分运行,但是测试从未执行。我在诊断输出中没有关于这些测试的错误/警告/消息,但是我确实看到构建过程检测到我的程序集符合上述通配符规则(**\*.test*.dll)中的单元测试候选项。
我还尝试将NUnit3TestAdapter程序集放入TFS构建控制器属性中定义的"自定义程序集版本控制路径"文件夹中,但无济于事。
有人能否看出我在这个过程中是否漏掉了一个步骤?从我在这些论坛上阅读的所有内容来看,我似乎已经做了必要的一切,但它们仍然不会执行。
我通过直接在包含我的NUnit测试的程序集上运行MSTest.exe(这是TFS构建使用的工具)来大大简化了问题。相应的程序集已经安装了适配器和nunit框架作为NuGet软件包,但仍然报告没有发现测试(见下文): C:\Users\hdav>"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\MSTest.exe" /testcontainer:e:\MyCode\nunit\ExpectedExceptionExample\bin\Debug\ExpectedExceptionExample.dll 正在加载e:\MyCode\nunit\ExpectedExceptionExample\bin\Debug\ExpectedExceptionExample.dll... 开始执行... 没有可执行的测试。
在VS(测试资源管理器)中执行我的测试非常完美,我认为这些步骤足以确保它们也作为CI构建的一部分运行,但是测试从未执行。我在诊断输出中没有关于这些测试的错误/警告/消息,但是我确实看到构建过程检测到我的程序集符合上述通配符规则(**\*.test*.dll)中的单元测试候选项。
我还尝试将NUnit3TestAdapter程序集放入TFS构建控制器属性中定义的"自定义程序集版本控制路径"文件夹中,但无济于事。
有人能否看出我在这个过程中是否漏掉了一个步骤?从我在这些论坛上阅读的所有内容来看,我似乎已经做了必要的一切,但它们仍然不会执行。
我通过直接在包含我的NUnit测试的程序集上运行MSTest.exe(这是TFS构建使用的工具)来大大简化了问题。相应的程序集已经安装了适配器和nunit框架作为NuGet软件包,但仍然报告没有发现测试(见下文): C:\Users\hdav>"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\MSTest.exe" /testcontainer:e:\MyCode\nunit\ExpectedExceptionExample\bin\Debug\ExpectedExceptionExample.dll 正在加载e:\MyCode\nunit\ExpectedExceptionExample\bin\Debug\ExpectedExceptionExample.dll... 开始执行... 没有可执行的测试。
MsTest
运行测试时,只会执行旧版的 MsTest 项目。要加载新的可扩展测试运行程序,必须执行vstest.console.exe
。 - jessehouwing