0

我的 Package.json 代码:

"dependencies": {
    "gulp-jest": "^2.0.0",
    "jest-cli": "^20.0.4",
    "supertest": "^1.2.0"
}      
"scripts": {
    "test": "gulp test"
}

我的 gulpfile 测试任务如下

gulp.task('run-tests', (done) => {
  gulp.src(['__tests__'])
  .pipe(jest({ testMatch: ['**/*.test.js'] }))
  .on('error', (error) => {
    done(error);
  })
  .on('finish', () => {
    done();
  });
});

我的测试用例文件是

const request = require('supertest');
 test('POST: Should create a new plan', (done) => {
      request('https://localhost:3000')
        .post('/api/name')
        .set('authorization', `bearer ${accessToken}`)
        .set('content-type', 'application/json')
        .send({
          name: 'TestPlanCreated'
        })
        .end((err, res) => {
          if (err) {
            return done.fail(err);
          }
        expect(res.statusCode).toBe(299);
        done();
        });

成功时它应该给出statusCode 200,我通过期望200以外的方式使其失败,但测试用例没有失败也没有通过。

4

1 回答 1

0

我将我的任务更改为:

gulp.task('run-tests', (done) => {
  const options = {
    projects: [__dirname],
    silent: true,
    testMatch: ['**/?(*.)(test).js?(x)'],
    runInBand: true,
  };
  jest.runCLI(options, [__dirname])
  .then((result) => {
    if (result.numFailedTestSuites || result.numFailedTests) {
      return done(result);
    }
    return done();
  })
  .catch(error => done(error));
});

并将软件包更新为

"gulp-nsp": "^2.4.2",
"gulp-sequence": "^0.4.6",
"jest-cli": "^21.1.0",

现在测试用例开始失败/通过。

于 2017-10-30T12:26:57.230 回答