还有什么需要让Hosted Build Controller运行我的NUnit测试

时间:2014-03-17 17:34:57

标签: build nunit automated-tests azure-devops hosted

尽管遵循" 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由我在新测试类中添加。当我"全部运行"时,运行两个测试:

Test Explorer image showing both tests are run

一切看起来都很好,很花哨。但是,当我使用Hosted Build Controller在Visual Studio Online上运行构建时,只执行MS测试:

Diagnostics output of VSO's hosted build controller wrt test execution

当我删除对MS测试框架的引用并将UnitTest1类中的属性调整为NUnit属性时,IDE再次能够查看并运行它们(它"重新发现" TestMethod1,如下所示:在运行测试之前,TestExplorer中有一个蓝色图标,但托管的构建控制器然后报告"没有找到测试。":

No tests found. Diagnostics

"自定义程序集的版本控制路径"使用省略号按钮设置构建控制器属性(因此Visual Studio决定放置什么)并设置为$/BJM Software TFVC/CustomBinaries。构建的诊断日志显示自定义二进制文件已被"得到":

Source pull log wrt custom binaries

其他信息:

  • 我正在使用"默认"构建定义。 "默认"从某种意义上说,我只是根据所使用的构建脚本对其进行了更改(尽管这并没有造成一点点差别)。
  • 我正在使用TfvcTemplate.12.xaml构建脚本。
  • 构建脚本具有**\*test*.dll;**\*test*.appx作为测试源规范(与默认值相同)。
  • 运行设置是"没有运行设置文件"和"默认类型的运行设置"。

  • 我先尝试过" hard"也引用了nunit.framework.dll。这编译好(即NUnit代码由编译器找到),但没有运行测试。切换到NuGet包没有帮助。

问题

我错过了什么?我还需要做些什么来使Visual Studio Online的托管构建控制器运行我的NUnit测试?

1 个答案:

答案 0 :(得分:1)

胜利是通过

实现的
  • 将NuGet“VS2012和VS2013的NUnit测试适配器”包添加到包含单元测试的项目中

现在,日志显示“通过了2个测试中的2个”。

Pffff。

添加Test Adapter包还允许我从构建控制器属性的“Version control path to custom assemblies”中删除$/BJM Software TFVC/CustomBinaries路径。