我想将TestRail与NUnit集成。基本思想是使用[Property]属性将TestRail Case ID分配给测试方法,然后在测试套件运行时使用ITestEventListener在TestRail上执行实时更新。
为此,我在我的解决方案中创建了一个项目,其中包含所述接口和[Extension]属性的实现:
[Extension(Description = "TestRail Integration", EngineVersion = "3.4")]
public class TestRailIntegration : ITestEventListener
{
public void OnTestEvent(string report)
{
var path = Path.Combine("D:\\NUnit", "foobar.txt");
if (!Directory.Exists("D:\\NUnit"))
{
Directory.CreateDirectory("D:\\NUnit");
}
File.WriteAllText(path, report);
}
}
但是如何让NUnit实际使用该扩展呢?我有两个用例:从Visual Studio运行并通过TeamCity运行。我读过“.addins”文件,但在我的项目中创建一个(然后用我的TestSuite.dll和nunit.engine.dll复制到输出目录)似乎没有效果。
我在哪里放置“.addins”文件?我从VS内部运行所有测试(使用Resharper)
每个支持引擎扩展的跑步者(并非所有人都应该)应该在与.addins
相同的目录中附带一个nunit.engine.dll
文件。该文件可以指向文件列表和/或目录。
如果指向某个目录,该目录可能包含其他.addins
文件,允许它们被链接。
通常,最好的办法是将扩展程序与其自己的.addins
文件一起放在目录中,并将该目录添加到主.addins
文件中。这样,您可以使用xcopy部署,只需要编辑一个文件。
请记住,以多种方式安装的任何扩展(zip,msi,nuget)可能需要为每种包类型使用不同的.addins
文件。如果仔细观察NUnit引擎本身,你会发现我们正在做的事情。