2

尽管按照“为自定义活动和其他单元测试框架添加程序集”中给出的说明添加所需的 NUnit 二进制文件并使构建控制器知道它们,但我无法让 Visual Studio Online 的托管构建控制器运行我的 NUnit 测试。

我首先在一个 Git 项目中尝试了所有这些,但无法让它工作,尽管Visual Studio Online CI Nunit Tests 中的信息在 build 期间没有找到

我目前的工作是在 TFVC 项目中,因此托管构建控制器无法从 Git 中提取的事实不应该是一个因素。

我正在使用的项目是一个简单的类库,没有代码但是项目向导自动添加的代码。测试项目类似:使用向导添加一个新的测试项目,添加 NUnit 包并添加一个引用 NUnit 框架而不是 MS 的新测试类。在 IDE 中,测试运行器正确显示了两个单元测试:TestMethod1一个是向导添加的,NUnit_TestMethod1一个是我在新测试类中添加的。当我“全部运行”时,两个测试都运行:

显示两个测试都运行的测试资源管理器图像

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

VSO 的托管构建控制器 wrt 测试执行的诊断输出

当我删除对 MS 测试框架的引用并将 UnitTest1 类中的属性调整为 NUnit 属性时,IDE 再次能够看到并运行这两者(它“重新发现”了 TestMethod1,如运行前 TestExplorer 中的蓝色图标所示测试),但托管的构建控制器随后报告“未找到测试。”:

未找到任何测试。 诊断

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

源拉日志 wrt 自定义二进制文件

附加信息:

  • 我正在使用“默认”构建定义。“默认”的意思是我只对所使用的构建脚本进行了更改(尽管这并没有产生盲目的区别)。
  • 我正在使用 TfvcTemplate.12.xaml 构建脚本。
  • 构建脚本具有**\*test*.dll;**\*test*.appx作为测试源规范(与默认值相比没有变化)。
  • 运行设置为“无运行设置文件”和“运行设置的默认类型”。

  • 我首先尝试了对 nunit.framework.dll 的“硬”引用。这编译得很好(即编译器找到了 NUnit 代码),但没有运行测试。切换到 NuGet 包没有帮助。

问题

我错过了什么?我还需要做什么才能让 Visual Studio Online 的 Hosted Build Controller 运行我的 NUnit 测试?

4

1 回答 1

1

胜利是由

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

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

噗。

添加测试适配器包还允许我$/BJM Software TFVC/CustomBinaries从构建控制器属性的“版本控制路径到自定义程序集”中删除路径。

于 2014-03-17T19:34:23.290 回答