首页 > 解决方案 > 如何让 jasmine-ts 使用特定种子执行我的规范?

问题描述

我正在使用jasmine-ts0.3.0 版运行单元测试。

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

未找到规格

我发现了一个github 问题(和这个问题),有人评论说:

传递给的所有参数都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
}

随机运行我的测试,我发现我有一些失败,所以我想用特定的种子来播种 jasmine 执行以重现问题。

我尝试将"seed": 123配置添加到我的jasmine.json,但没有奏效。我找到了一些描述应该是什么样子的文档jasmine.json,并且没有提到任何seed配置。

这里提到seed的是关于命令行选项的部分

所以我尝试了:

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

(请记住,配置文件显然是必需的——或者至少我没有看到任何选项来指定我的规格在哪里而不使用它)

然而,这在茉莉花日志中不起作用:

用种子 94263 随机化

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

所以...我不能seed在 jasmine.json 中指定,并且指定--seed=...没有效果。

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

标签: node.jsunit-testingjasminejasmine-nodejasmine-ts

解决方案


遇到与常规 Jasmine 相同的问题,发现由于loadConfig某种原因它不会复制它,但是如果从您自己的脚本运行它,则在您创建的 jasmine 对象上有一个方法:

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

推荐阅读