Mocha 的 before() 函数在 CircleCI 中使用时失败
Mocha's before() function fails when used within CircleCI
我正在尝试使用 Mocha 在 CircleCI 上测试我的 JS 代码,但在测试开始时出现以下错误:
Sample test suite
1) "before all" hook: applyFixture
0 passing (77ms)
1 failing
1) Sample test suite "before all" hook: applyFixture:
StatusCodeError: 404 - {"message":"Not Found"}
at _stream_readable.js:943:16
sample_test.js 文件:
describe('Sample test suite', function() {
before(function applyFixture() {
var options = {
uri: 'http://localhost:8000/sampleRoute',
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
form: {dataset: 'test_dataset'},
resolveWithFullResponse: true
};
return rp(options)
.then(function(response) {
if (response.statusCode === 200) {
console.log('ready for testing!');
} else {
throw new Error('failed to load');
}
});
});
以下代码在本地运行良好。如果我将 before
块中的代码包含到第一个测试中,它也将适用于 CircleCI。 localhost:8000/sampleRoute
也可在测试开始前使用。
不确定如何解决此问题...
然后问题出在请求的 header 上。我必须在其中指定身份验证令牌才能正确执行 POST 请求。这与CircleCI无关。
下面是有效的 options
object:
var options = {
uri: 'http://localhost:8000/sampleRoute',
method: 'POST',
headers: {
authorization: 'authorizationToken'
},
form: {dataset: 'test_dataset'},
resolveWithFullResponse: true
};
我正在尝试使用 Mocha 在 CircleCI 上测试我的 JS 代码,但在测试开始时出现以下错误:
Sample test suite
1) "before all" hook: applyFixture
0 passing (77ms)
1 failing
1) Sample test suite "before all" hook: applyFixture:
StatusCodeError: 404 - {"message":"Not Found"}
at _stream_readable.js:943:16
sample_test.js 文件:
describe('Sample test suite', function() {
before(function applyFixture() {
var options = {
uri: 'http://localhost:8000/sampleRoute',
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
form: {dataset: 'test_dataset'},
resolveWithFullResponse: true
};
return rp(options)
.then(function(response) {
if (response.statusCode === 200) {
console.log('ready for testing!');
} else {
throw new Error('failed to load');
}
});
});
以下代码在本地运行良好。如果我将 before
块中的代码包含到第一个测试中,它也将适用于 CircleCI。 localhost:8000/sampleRoute
也可在测试开始前使用。
不确定如何解决此问题...
然后问题出在请求的 header 上。我必须在其中指定身份验证令牌才能正确执行 POST 请求。这与CircleCI无关。
下面是有效的 options
object:
var options = {
uri: 'http://localhost:8000/sampleRoute',
method: 'POST',
headers: {
authorization: 'authorizationToken'
},
form: {dataset: 'test_dataset'},
resolveWithFullResponse: true
};