尽管按照“为自定义活动和其他单元测试框架添加程序集”中给出的说明添加所需的 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 测试:
当我删除对 MS 测试框架的引用并将 UnitTest1 类中的属性调整为 NUnit 属性时,IDE 再次能够看到并运行这两者(它“重新发现”了 TestMethod1,如运行前 TestExplorer 中的蓝色图标所示测试),但托管的构建控制器随后报告“未找到测试。”:
构建控制器属性的“自定义程序集的版本控制路径”是使用省略号按钮设置的(因此 Visual Studio 决定在此处放置什么)并设置为$/BJM Software TFVC/CustomBinaries
. 构建的诊断日志显示自定义二进制文件已“获取”:
附加信息:
- 我正在使用“默认”构建定义。“默认”的意思是我只对所使用的构建脚本进行了更改(尽管这并没有产生盲目的区别)。
- 我正在使用 TfvcTemplate.12.xaml 构建脚本。
- 构建脚本具有
**\*test*.dll;**\*test*.appx
作为测试源规范(与默认值相比没有变化)。 运行设置为“无运行设置文件”和“运行设置的默认类型”。
我首先尝试了对 nunit.framework.dll 的“硬”引用。这编译得很好(即编译器找到了 NUnit 代码),但没有运行测试。切换到 NuGet 包没有帮助。
问题
我错过了什么?我还需要做什么才能让 Visual Studio Online 的 Hosted Build Controller 运行我的 NUnit 测试?