18

如果测试规范Idea Web Storm在.Karmakaram.conf.js

但是,如果我右键单击 JS 文件并选择“Run MySpec.js”,我会收到以下错误:

/usr/bin/node MyTestSpec.js

/Users/dev/WebstormProjects/demow/test/MyTestSpec.js:4
describe('Activate wallet controller --', function () {
^
ReferenceError: describe is not defined
    at Object.<anonymous> (/Users/dev/WebstormProjects/demow/test/MyTestSpec.js:4:1)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:901:3

Process finished with exit code 8

也许不可能以这种方式运行 JS 测试。

以下是中的配置WebStorm在此处输入图像描述

正如我提到的,链接到 karma.conf.js 文件的 KT 配置工作正常。

任何帮助表示赞赏。

4

3 回答 3

12

我没有适合您的 WebStorm 特定解决方案 - 但是,如果您只想能够仅运行某些 jasmine 测试而不是所有测试,则可以通过使用“ focused specs ”来实现

本质上,如果您更改describefdescribeor itfitjasmine 将只运行带有f前缀的规范并忽略所有其他规范。

这是一个例子:

fdescribe('Spec1', function () {

    it('should do something', function () {
        ...
    });
});

describe('Spec2', function () {

    it('should do something', function () {
        ...
    });
});

如果你在这个文件上运行 jasmine 测试,块it中的所有 sSpec1 fdescribe都会被运行。

因此,如果您可以让 WebStorm 运行您的所有规范,您可以使用fdescribe并将fit运行重点放在特定的规范上。

请注意不要提交您的代码fit并且fdescribe仍然在其中,否则您可能会无意中导致您的 CI 服务器跳过运行您的大部分规范:)

于 2015-11-11T16:25:13.957 回答
1

您不能以这种方式运行业力测试 - 未加载所需的模块。你想做什么 - 运行单个测试文件?无法将规范文件直接传递给 karma - 请参阅https://github.com/karma-runner/karma/issues/553

如果你喜欢使用 Node.js 运行配置来运行 karma 测试,正确的参数如下:

  • Javascript 文件:/usr/local/bin/karma

  • 应用参数:启动 karma.conf.js

于 2014-05-13T11:42:55.360 回答
0

对于 angular2 项目,将 karma.conf.js 和 src/test.ts 文件复制到名为 karma.single.conf.js 和 src/test.single.ts 的文件中。

编辑 karma.single.conf。将引用 src/test.ts 的 2 个地方更改为 src/test.single.ts(文件和模式)。

在 test.single.ts 文件中更改

let context = require.context('./', true, /\.spec\.ts/);

到您要测试的测试文件的正则表达式

 let context = require.context('./', true, /data\.service\.spec\.ts/);

然后运行->Edit Configurations 创建一个 Karma 目标并将配置文件更改为 karma.single.conf.js

于 2017-01-29T18:52:51.027 回答