在Azure DevOps测试结果中显示Jasmine屏幕快照

时间:2019-06-24 10:10:11

标签: jasmine azure-devops protractor azure-pipelines

我正在使用Protractor和Jasmine进行e2e测试,以测试我的应用程序。该代码位于Azure DevOps上,并自动生成并运行测试。 Azure非常棒,当您的测试结果采用JUnit,xUnit ...格式时,您实际上可以使用图形生成测试结果。

我安装了protractor-jasmine2-screenshot-reporter,因为我希望能够在测试失败时显示屏幕截图。在我的电脑上本地运行效果很好。每次生成屏幕截图并将其放置在正确的位置。它生成.png文件和一个.html文件。在html中有对.png文件的引用。

example of screenshots output

现在是问题所在:屏幕截图捆绑在html中,但是azure无法将html形成测试结果。

如何让茉莉花将其转换为Azure可以读取的格式,或者如何在Azure中插入屏幕截图而不会抱怨Azure无法读取? 我已经能够显示由生成.xml文件的茉莉花记者生成的测试结果,这不是问题。但是将屏幕截图/ html导入Azure DevOps ...

即使我只可以将附件与屏幕截图附加在一起,也已经很棒。

我已经在互联网上到处查看了两天的三种可能性:

  1. 也许有一个插件会截取屏幕截图,并以某种方式将其包含在Azure将读取的xml中。不幸的是,我只能找到生成html的插件。
  2. 我试图找到一种方法,可以使Azure接受某种类型的附件或接受html,但似乎不会。
  3. 我在寻找将html转换为xml的方法,但似乎只找到了另一种方法。

一般问题:

如何显示tfs测试结果的屏幕截图。例如,在附件中(如图所示)。

picture of where I want the screenshots to come

1 个答案:

答案 0 :(得分:0)

您可以使用jasmine-trx-reporter。安装npm软件包并将以下代码添加到量角器配置中。另外,不要忘记使用Azure DevOps中的发布测试结果任务来发布trx文件。

const TrxReporter = require('jasmine-trx-reporter');

jasmine.getEnv().addReporter(new TrxReporter({
  folder: 'e2ereport/trx/',
  takeScreenshotsOnlyOnFailures: true,
}));