using cucumber with typescript

589 阅读1分钟
官方教程只提供了js版本: 

cucumber.io/docs/guides…

如果想使用ts:

一、借助ts-node在运行测试时编译

  1.  先安装@types/cucumber、 ts-node
  2.  根目录下:

    // cucumber.js
    // 重点是require steps文件,否则会找不到step,报undefined
    module.exports = {    
    default: ` 
     --require-module ts-node/register  
     --require ./features/**/*.ts  
     --require ./features/*.ts`}

3.check tsconfig.json

"module": "commonjs", // 这里必须是commonjs 否则会报SyntaxError: Unexpected token

4.其他参考原教程


二、直接使用tsc编译再运行测试

  1. 通常我们需要准备一个供测试文件编译的tsconfig.test.json
  2. 修改test script

// 根目录下 tsconfig.test.json
{  
"compilerOptions":
 {    
    "module": "commonjs",    
    "rootDir": "features",   
     "outDir": "features"
 }, 
 "include": [    "./features/*.ts",    "./features/**/*.ts"  ], 
 "exclude": []}

// package.json
 "scripts": {    ...    
    "test": "tsc -p tsconfig.test.json && cucumber-js features/"}

这个时候可以不require step文件。我猜是因为已经转译成目录下的js,可以被检索到,如果是运行时编译就要手动require *.ts文件

有知道的敬请指教