首页 > 解决方案 > CucumberJS 没有在 Gitlab CI 的打字稿中编译

问题描述

NPM 脚本"cucumber": "cucumber-js --require features/tests.setup.js --require features/**/*.ts".

测试.setup.js

require('ts-node').register({
  transpileOnly: true,
  compilerOptions: {
    "module": "commonjs",
  },
});

Gitlab CI错误

> cucumber-js --require features/tests.setup.js --require features/**/*.ts
Error: Parse error in 'features/step-definitions/steps.calculus-triangle.ts': (1:1): expected: #EOF, #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'import {Then} from 'cucumber''
    at events.forEach.event (/builds/Ambroise-Rabier/mandala-vibratoire/node_modules/cucumber/lib/cli/helpers.js:110:13)
    at Array.forEach (<anonymous>)
    at getTestCases (/builds/Ambroise-Rabier/mandala-vibratoire/node_modules/cucumber/lib/cli/helpers.js:81:10)
    at _bluebird.default.each (/builds/Ambroise-Rabier/mandala-vibratoire/node_modules/cucumber/lib/cli/helpers.js:58:35)

它在本地工作(win 10),但在 Gitlab CI 上它似乎忽略了打字稿编译。

标签: typescriptgitlab-cicucumberjs

解决方案


我在 GitLab CI 中的 Error running ./node_modules/.bin/cucumber-js的帮助下找到了一些工作,但是我没有使用nyc,所以这里只使用cucumberjs的解决方案。

NPM 脚本"cucumber": "cucumber-js --profile default".

cucumber.js在项目的根目录下创建包含内容的文件:

let common = [
  '--require features/tests.setup.js',
  '--require features/**/*.ts',
].join(' ');

module.exports = {
  default: common,
};

相关文档https ://github.com/cucumber/cucumber-js/blob/master/docs/cli.md#profiles


推荐阅读