首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >松弛集成只适用于onPrepare,但不适用于onComplete,afterLaunch?

松弛集成只适用于onPrepare,但不适用于onComplete,afterLaunch?
EN

Stack Overflow用户
提问于 2017-05-28 13:05:02
回答 2查看 153关注 0票数 0

我用Slack连接我的量角器测试,如果测试开始,一旦完成,我的想法是在休息室发送一个消息。

但是,我只能在onPrepare期间成功地向slack发送消息。但不是在afterLanch,甚至不是在onComplete。

我试着在afterLaunch和onComplete中做一个简单的console.log,所以我知道它是有效的。唯一让我感到困惑的是,为什么在测试完成后,它没有松弛地发送消息。

如果有更好的方法,请告诉我你的想法。现在,这是我能找到的最好的。

请参考我的代码:

代码语言:javascript
复制
let SpecReporter = require('jasmine-spec-reporter').SpecReporter;
var webRep = require('jasmine-slack-reporter');
var Jasmine2HtmlReporter = require('protractor-jasmine2-html-reporter');
var SlackWebhook = require('slack-webhook');
var slack = new SlackWebhook('my-webhook-url');

exports.config = {

capabilities: {
    'browserName' : 'chrome',
},
seleniumAddress: 'http://localhost:4446/wd/hub',
specs: ['./smoke-test/loginAccountType.js'],

onPrepare: function () {
    browser.ignoreSynchronization = true,
    slack.send({
    text: "Test is starting",
    channel: '#test-report'
  }),
  jasmine.getEnv().addReporter(new SpecReporter({
    spec: {
      displayStacktrace: true
    }
  })),
  jasmine.getEnv().addReporter(
    new Jasmine2HtmlReporter({
      savePath: './reports',
      takeScreenshotsOnlyOnFailures: true,
    })
  );
},

afterLaunch: function () {
  slack.send({
    text: "Test is Done",
    channel: '#test-report'
  })
},

jasmineNodeOpts: {
  // Default time to wait in ms before a test fails.
  defaultTimeoutInterval: 100000,
  print: function() {},
  },

};

EN

回答 2

Stack Overflow用户

发布于 2017-05-28 16:39:02

看起来你的slack.send()是异步的?尝试从你的afterLanch/onComplete返回promise -在这种情况下,量角器将等待这个promise解析,然后终止node.js进程。

我从未使用过slack-webhook包。但我在文档中看到的是- .send()正在返回promise。尝试从您的afterLaunch/onComplete返回它:

代码语言:javascript
复制
afterLaunch: function () {
  return slack.send({
    text: "Test is Done",
    channel: '#test-report'
  })
},
票数 0
EN

Stack Overflow用户

发布于 2017-05-29 02:05:15

除了@Xotabu4他的答案。

根据docssend是异步的,所以return也是异步的;

但也catch错误,只是为了检查什么失败,见下文。

代码语言:javascript
复制
return slack.send('some text')
  .then(function(res) {
    // succesful request 
  })
  .catch(function(err) {
    // handle request error 
  })

希望能有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44223985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档