c# - 如何将输出添加到 NUnit HTML 报告
问题描述
我通过控制台运行器使用 NUnit3。在我的测试用例中,我写了一些这样的输出:
TestContext.Out.WriteLine($"Tested product: {productName}");
TestContext.Out.WriteLine($"Backend: {backend}");
TestContext.Out.WriteLine($"Tester Version: {testerVersion}");
这些出现在 .xml 报告中就好了:
<output><![CDATA[XLA Standard Version: 2.2.0
Backend: TCP
Tester Version: 2.0.0.0
Local RTC version: 2.0.0.0
]]></output>
但由于 .xml 结果几乎不可读,我通过将以下参数添加到控制台运行器来使用 HTML 转换:
--result=TestResult.html;transform=html-report-bootstrap.xslt
然后,这会将 .xml 报告转换为漂亮的 .html 报告。但遗憾的是,报告中缺少所有输出。我尝试了 NUnit 存储库中的不同 .xslt 文件,但似乎没有一个文件可以保留输出。
在 HTML 报告中出现的测试用例中创建输出的正确方法是什么?
解决方案
您现在可能已经找到了解决方案,但我遇到了同样的问题并发布了我的解决方案,希望它可以帮助其他人。
输出语句在转换时正确包含在 html 文件中,并在单击测试名称时显示。但真正的问题是当我们点击测试名称时,什么也没有发生。Click 事件不起作用,因为文件的script
标签bootstrap js
在转换为 html 时未正确转换。
所以html-report-bootstrap.xslt
在任何编辑器中打开,你会发现最后添加了 3 个 .js 文件,如下所示:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.4/dist/umd/popper.min.js" integrity="sha384-q2kxQ16AaE6UbzuKqyBE9/u/KzioAlnx2maXQHiDX9d4/zp8Ok3f+M7DPm+Ib6IU" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.min.js" integrity="sha384-pQQkAEnwaBkjpqZ8RU1fF1AKtTcHJwFl3pblpTlHXybJjHpMYo79HY3hIi4NKxyj" crossorigin="anonymous"></script>
但是当它转换为 html 文件时,所有 3 个 js 文件都添加了如下self-closing script
标签,并且在 Chrome / Firefox 浏览器中不起作用。因此,测试名称上的单击事件不起作用。在此处查看此问题以获取更多信息。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js" />
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.4/dist/umd/popper.min.js" integrity="sha384-q2kxQ16AaE6UbzuKqyBE9/u/KzioAlnx2maXQHiDX9d4/zp8Ok3f+M7DPm+Ib6IU" crossorigin="anonymous" />
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.min.js" integrity="sha384-pQQkAEnwaBkjpqZ8RU1fF1AKtTcHJwFl3pblpTlHXybJjHpMYo79HY3hIi4NKxyj" crossorigin="anonymous" />
因此,作为目前的临时解决方案,我修改了html-report-bootstrap.xslt
文件并在标签之间添加了一些 JS,如下所示:
//include the full path
<script src="jquery.js">let x;</script>
<script src="popper.min.js">let y;</script>
<script src="bootstrap.min.js">let z;</script>
因此,现在当它转换为 html 时,没有更多内容了self-closing script tag
,当单击测试名称时,您可以看到输出语句,如下所示:
推荐阅读
- javascript - Node.js - 不和谐拥抱命令 - 用户特定不起作用
- javascript - 如何/何时删除子元素以清除搜索结果?
- cassandra - 从 comments_by_video 选择评论 WHERE uuid = 'with id 357c33b4-9054-a5e1-8da8-d9e38294fac1';
- google-apps-script - 谷歌工作表 - 根据条件将数据复制到另一个选项卡
- wordpress - 从“已下订单”到“处理中”的 2 天后自动更新 WooCommerce 订单状态
- java - 如何在 lambda 方法上获得 100% 的覆盖率 [JAVA]
- django - Django 一对多松散关系
- elixir - Genserver Phoenix 问题
- sql-server - 自定义 Web 应用程序 + Tableau + SQL Server(无 Tableau 仪表板)
- amazon-s3 - 通过 Haproxy 反向代理 S3 存储桶