我正在与Slack挂钩我的量角器测试,想法是在测试开始时和松弛的房间发送消息。
但是,我只能在onPrepare期间成功发送消息。但不是在afterLanch甚至在onComplete中。
我尝试在afterLaunch和onComplete中做一个简单的console.log,所以我知道它有效。唯一令我困惑的是为什么它在测试完成后不会在松弛时发送消息。
如果有更好的方法,请告诉我你的想法。现在,这是我得到的最好的。
请参阅我的代码:
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() {},
},
};
答案 0 :(得分:0)
您的slack.send()
似乎是异步的?
尝试从afterLanch / onComplete返回promise - 在这种情况下,量角器会在杀死node.js进程之前等待此promise的解析。
我从未使用slack-webhook
包。但我在文档中看到的内容 - .send()
正在回归承诺。尝试从afterLaunch / onComplete返回它:
afterLaunch: function () {
return slack.send({
text: "Test is Done",
channel: '#test-report'
})
},
答案 1 :(得分:0)
除了@ Xotabu4他的答案。
根据docs,return
是异步的,catch
也是如此;
但return slack.send('some text')
.then(function(res) {
// succesful request
})
.catch(function(err) {
// handle request error
})
错误,只是检查失败的原因,见下文。
{{1}}
希望有所帮助