在本地,我已经成功地在C# netcoreapp3.1csproj中实现了接口ITestEventListener。但是,当测试是在Jenkins Pipeline中进行时,事情似乎无法正常工作(?)。
我使用的是3.12.0版的NUnit.Engine。
在本地,我指的是使用1) Visual Studio版本16.9.2来运行测试和2)命令行dotnet test -c devint --test-adapter-path:. --logger:nunit来运行测试。我正在获得成功的测试运行。
成功是我的[Extension]public class ReportTestListener : ITestEventListener {...}生成了一个html文件。我将看到html文件是在本地创建的,而从Jenkins Pipeline中不会生成html文件。
在Jenkins Pipeline中,我使用命令sh "dotnet test -c ${env.TARGET_ENV} --test-adapter-path:. --logger:nunit",其中env.TARGET_ENV解析为devint。我知道测试在Jenkins Pipeline中成功运行,因为NUnit测试结果文件是生成/发布的。
我不确定的是如何测试/验证ReportTestListener是否在Jenkins Pipeline中被调用。我知道像NUnit这样的测试框架使用refection来识别测试类和方法。我假设在我的[Extension]public class ReportTestListener : ITestEventListener {...}实现中也会发生这种情况。关于如何验证ITestEventListener的方法void OnTestEvent(string report)正在被调用的想法/建议,除了写到磁盘上?
发布于 2021-04-12 22:44:18
已将文件写入文本路径更改为使用/而不是\。
https://stackoverflow.com/questions/66877034
复制相似问题