【问题标题】:How add outputs to the NUnit HTML report如何将输出添加到 NUnit HTML 报告
【发布时间】:2021-06-16 06:17:45
【问题描述】:

我正在通过控制台运行程序使用 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 报告中出现的测试用例中创建输出的正确方法是什么?

【问题讨论】:

标签: c# visual-studio nunit


【解决方案1】:

您现在可能已经找到了解决方案,但我遇到了同样的问题并发布了我的解决方案,希望它可以帮助其他人。

输出语句在转换后正确包含在 html 文件中,并在单击测试名称时显示。但真正的问题是当我们点击测试名称时,什么也没有发生。 Click 事件不起作用,因为 bootstrap js 文件的 script 标记在转换为 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 浏览器中不起作用。因此,测试名称上的单击事件不起作用。查看此问题here 了解更多信息。

<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 并且您可以在单击测试名称时看到您的输出语句,如下所示:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2013-07-07
    • 1970-01-01
    相关资源
    最近更新 更多