代码之家  ›  专栏  ›  技术社区  ›  Totty.js

黄瓜和打字机的正确使用?

  •  3
  • Totty.js  · 技术社区  · 7 年前

    我在跟踪一个 tutorial 但是设置很糟糕。基本上,它使用typescript将.ts文件转换为.js。因此,基本上会用周围的.js文件污染整个源代码。

    因此,一旦从源代码导入.ts文件,所有依赖项都将与.js文件重复。

    你知道如何做适当的字体黄瓜测试吗?

    黑客解决方案:将所有功能和所有文件复制到另一个临时文件夹中,从那里运行。我希望黄瓜比这个成熟一点,所以我的问题在这里?

    或者更改cumber的配置以从ts中查找build文件夹。

    谢谢你

    为什么仅仅使用typescript不起作用:

    代码结构:

    • 测验
      • A.特征
      • 步骤定义.ts

    现在,您将编译typescript并具有以下结构:

    • 测验
      • A.特征
      • 步骤定义.ts
    • 建造
      • 测验
        • 步骤定义.js

    现在你可以看到了 stepDefinitions.js 不知道在哪里能找到 a.feature . 如果在build/test文件夹中运行cumber,它将找不到任何要运行的步骤功能…因为它们在测试文件夹中。所以修复它的黑客方法是复制产生这种结构的特性文件:

    • 测验
      • A.特征
      • 步骤定义.ts
    • 建造
      • 测验
        • A.特征
        • 步骤定义.js

    现在可以用了,但是很粗糙,我不喜欢。

    2 回复  |  直到 7 年前
        1
  •  2
  •   Ray    7 年前

    根据提供的更多信息更新了答案:

    您应该做的第一件事是将您的功能和步骤分离到它们自己的文件夹中。

     tests
      features
        a.feature
        b.feature
      stepDefinitions
        aStep.ts
    

    接下来,创建一个cumber.js文件,它将是cumber概要文件。我使用下面的配置文件,但这取决于你想做什么

        var common = [
      `--format ${
        process.env.CI || !process.stdout.isTTY ? 'progress' : 'progress-bar'
        }`,
      '--format json:./reports/cucumber-json-reports/report.json',
      '--format rerun:@rerun.txt',
      '--format usage:usage.txt',
      '--parallel 20',
      '--require ./build/tests/stepDefinitions/**/*.js',
      '--require ./build/tests/stepDefinitions/*.js',
      '--require ./build/tests/support/*.js'
    ].join(' ');
    
    module.exports = {
      default: common,
    };
    

    上面告诉黄瓜你的脚步在哪里。现在,您可以从项目的根目录运行类似以下的内容

    tsc && ./node_modules/.bin/cucumber-js ./tests/features/ -p default
    

    本遗嘱

    1. 编译代码
    2. 运行Cucumber JS库
    3. 针对Features文件夹运行Cucumber JS
    4. 使用cumber.js文件中构建的默认配置文件对features文件夹运行cumber js
        2
  •  0
  •   Ray    7 年前

    我不明白你的问题?Cucumber与将.ts文件编译为.js文件无关,这就是typescript所做的。如果不希望.ts和.js文件位于同一文件夹中,则可以将以下内容添加到tsconfig.json文件中。

    "outDir": "typeScript"
    

    这将把javascript文件输出到项目根目录下的“typescript”文件夹中。我个人喜欢把它们放在一起,因为这样更容易调试。无法摆脱正在创建的.js文件,因为它们是运行javascript时使用的文件。