所以我一直在尝试实现一个黄瓜步骤,该步骤对网站执行 POST 请求,等待请求完成(因为以下步骤依赖于 post 成功)并在出现任何问题时中断测试:
this.Then(/^Post file "([^"]*)" and wait for the request to finish$/, function(fileName, callback) {
var request = require("request");
var fs = require("fs-extra");
var options = {
method: 'POST',
url: "https://www.testOver9000.com/",
body: fs.readJsonSync(fileName),
json: true,
auth: {
username: "test",
password: "test"
}
};
request(options, function(error, response, body) {
if (!error && response.statusCode == 200) {
callback(null);
} else {
callback(error);
}
});
});
目前我在这里有两个问题:
- 此步骤不会等待 HTTP POST 完成,然后再转到下一步。
- 如果请求失败,则错误不会传递回调,也不会将其标记为失败。
任何帮助将不胜感激。
我有一种感觉,甚至在触发开机自检呼叫之前,您的测试就失败了。如果下面一行失败了,我不知道黄瓜是不是默默地失败了,进入下一步。
body: fs.readJsonSync(fileName)
你打印错误吗? 什么版本的黄瓜?这些答案可以帮助您更好地指导