如何获得茉莉花来执行带有特定种子的规格?

时间:2019-01-18 23:11:19

标签: node.js unit-testing jasmine jasmine-node jasmine-ts

我正在使用jasmine-ts版本0.3.0运行单元测试。

以前的版本运行良好,但是升级后,我会得到输出:

  

未找到规格

我发现有人评论的github issue(和this one

  

传递给jasmine-ts的所有参数都必须在该参数argv.config || process.env.JASMINE_CONFIG_PATH || "spec/support/jasmine.json";中具有其中之一

实际上,创建一个jasmine.json文件解决了“无规格问题”:

{
    "spec_dir": "../src/**/specs",
    "spec_files": [
        "**/*[sS]pec.ts"
    ],
    "stopSpecOnExecutionFailure": false,
    "random": true
}

随机运行测试,我发现我有一些失败,所以我想用一个特定的种子为执行茉莉花做种子,以重现该问题。

我尝试将"seed": 123配置添加到我的jasmine.json,但这没有用。我发现一些docs描述了jasmine.json的外观,但其中没有提及seed的配置。

提到seed的是有关命令行选项here的部分。

所以我尝试了:

jasmine-ts --seed=123 --config="./jasmine.json"

(请记住,配置文件显然是必需的-或至少我没有看到任何用于指定我的规格不使用的选项)

但是,这在茉莉花记录下不起作用:

  

随机种子94263

我提供的配置文件显然覆盖了命令行选项。我可以通过指定选项--random=false看到这一点,但是输出仍然显示Randomized with seed ...,因为我的jasmine.json包含"random": true

所以...我无法在jasmine.json中指定seed,并且指定--seed=...无效。

在这种情况下,如何使用茉莉-ts 0.3.0设置种子?

2 个答案:

答案 0 :(得分:0)

遇到常规Jasmine的相同问题,发现由于某种原因它没有将其复制到loadConfig中,但是如果您是通过自己的脚本运行的,则在您创建的jasmine对象上有一个方法:< / p>

const jasmine = new Jasmine();
jasmine.seed(1234);

答案 1 :(得分:0)

从 jasmine-ts 版本 0.3.2(here's 已关闭的问题)开始,命令行参数现在被转发到 jasmine,因此给定 package.json 如下:

{
   ...
   "scripts": {
      "test": "jasmine-ts.cmd --config=jasmine.json"
   }
}

您可以从命令行运行 npm run test -- --seed=1234