Javascript 捕获量角器测试用例的通过/失败以进行定制报告

Javascript 捕获量角器测试用例的通过/失败以进行定制报告,javascript,angularjs,typescript,protractor,automated-tests,Javascript,Angularjs,Typescript,Protractor,Automated Tests,我最近在公司为我们的angular应用程序设置了量角器测试,并正在寻找一种简单的方法来捕获spec类中每个场景的通过/失败状态。有没有一个简单的方法可以做到这一点?我尝试过使用jasmine spec reporter,但可能我缺少了提取所需数据的功能。任何帮助都将不胜感激 我试过这样的方法: let currentSpec = jasmine.getEnv().currrentSpec, passed = currentSpec.results().passed(); const myRep

我最近在公司为我们的angular应用程序设置了量角器测试,并正在寻找一种简单的方法来捕获spec类中每个场景的通过/失败状态。有没有一个简单的方法可以做到这一点?我尝试过使用jasmine spec reporter,但可能我缺少了提取所需数据的功能。任何帮助都将不胜感激

我试过这样的方法:

let currentSpec = jasmine.getEnv().currrentSpec, passed = currentSpec.results().passed();
const myReporter = require('myReporter');

// other config properties

onPrepare: function() {
  jasmine.getEnv().addReporter(myReporter);        
}
但我总是遇到这样的问题

未指定当前规格


理想情况下,如果可能的话,我想在没有jasmine报告的情况下记录通过或失败。

您也在使用此功能吗?:

要更好地描述错误并将其添加到jasmine reporter中,请执行以下操作:

您所寻找的实际上是
specDone
而不是
之后的
。您需要修改当前使用的报告器的
specDone
功能,或者构建一个符合您需要的自定义报告器

创建自定义报告器:

// myReporter.js
module.exports = {
  specDone: (result) => {
    // do stuff...
  }
}
然后在量角器配置中,您将有如下内容:

let currentSpec = jasmine.getEnv().currrentSpec, passed = currentSpec.results().passed();
const myReporter = require('myReporter');

// other config properties

onPrepare: function() {
  jasmine.getEnv().addReporter(myReporter);        
}

我已经调查过了,但无法如愿。基本上,我希望每个“it”块都有一个AfterEach,这就像(result.status=='failed'){//code to send results to our api reporting}看起来specDone是针对整个spec文件的。我希望它根据每个“it”块进行更新,但看起来我仍然需要一些报告依赖项。它应该针对每个“it”块运行。文档的第一行:
specDone在it及其相关的beforeach和afterEach函数运行时被调用。
ok这很有意义。。仍然不确定在何处指定它的specDone部分。在spec文件或conf文件中?这就是我现在让myReporter={specDone:function(result){if(result.failedExpections.length>0){TEST_STATUS=“FAIL”;}else{TEST_STATUS=“PASS”;}}; 之后(函数(myReporter){home.reportResults(项目键、测试用例键、测试周期键、测试状态、开始时间);})`这真的有效吗?您可能应该创建一个单独的
myReporter.js
文件,然后在量角器配置的
onPrepare
中设置它,类似于其他报告器的配置方式。我将用一个例子更新我的答案。