尽管遵循" Add assemblies for custom activities and other unit test frameworks"中提供的说明,我无法让Visual Studio Online的托管构建控制器运行我的NUnit测试。添加所需的NUnit二进制文件并使构建控制器知道它们。
我在Git项目中首先尝试了所有这些,尽管有Visual Studio Online CI Nunit Tests not found during build中的信息,但无法使其工作。
我目前的工作是在TFVC项目中,因此托管构建控制器无法从Git中提取的事实不应该是一个因素。
我正在使用的项目是一个简单的类库,没有代码,但项目向导自动添加了代码。测试项目类似:使用向导添加新的测试项目,添加了NUnit包并添加了一个引用NUnit框架而不是MS框架的新测试类。在IDE中,测试运行器正确显示了两个单元测试:TestMethod1
由向导添加,NUnit_TestMethod1
由我在新测试类中添加。当我"全部运行"时,运行两个测试:
一切看起来都很好,很花哨。但是,当我使用Hosted Build Controller在Visual Studio Online上运行构建时,只执行MS测试:
当我删除对MS测试框架的引用并将UnitTest1类中的属性调整为NUnit属性时,IDE再次能够查看并运行它们(它"重新发现" TestMethod1,如下所示:在运行测试之前,TestExplorer中有一个蓝色图标,但托管的构建控制器然后报告"没有找到测试。":
"自定义程序集的版本控制路径"使用省略号按钮设置构建控制器属性(因此Visual Studio决定放置什么)并设置为$/BJM Software TFVC/CustomBinaries
。构建的诊断日志显示自定义二进制文件已被"得到":
其他信息:
**\*test*.dll;**\*test*.appx
作为测试源规范(与默认值相同)。运行设置是"没有运行设置文件"和"默认类型的运行设置"。
我先尝试过" hard"也引用了nunit.framework.dll。这编译好(即NUnit代码由编译器找到),但没有运行测试。切换到NuGet包没有帮助。
我错过了什么?我还需要做些什么来使Visual Studio Online的托管构建控制器运行我的NUnit测试?
答案 0 :(得分:1)
胜利是通过
实现的现在,日志显示“通过了2个测试中的2个”。
Pffff。
添加Test Adapter包还允许我从构建控制器属性的“Version control path to custom assemblies”中删除$/BJM Software TFVC/CustomBinaries
路径。