运行单个测试文件

问题描述 投票:82回答:4

有没有办法为单个文件而不是整个测试套件运行ng test?理想情况下,我想在编辑文件时获得最快的反馈循环,但karma会在每次保存时执行整个套件,这在构建足够大的测试套件时会有点慢。


这与How to execute only one test spec with angular-cli的不同之处在于该问题是关于运行个别规范的。这是关于运行单个文件。该解决方案涉及相同的Jasmine规范功能,但问题的性质略有不同。

angular jasmine angular-cli karma-runner
4个回答
182
投票

我发现Jasmine允许你用describe(焦点?)为itf方法加前缀。所以,fdescribefit。如果你使用其中任何一个,业力只会运行相关的测试。因此,要聚焦当前文件,您可以采用顶级describe并将其更改为fdescribe。适合我的目的。


10
投票

值得一提的是,您可以在没有评论的情况下禁用特定测试xdescribexit

xdescribe('Hello world', () => { 
  xit('says hello', () => { 
    expect(helloWorld())
        .toEqual('Hello world!');
  });
});

正如有人已经说过,如果你想专注于一些测试,那么fdescribefit

fdescribe('Hello world', () => { 
  fit('says hello', () => { 
    expect(helloWorld())
        .toEqual('Hello world!');
  });
});

1
投票

使用npm run test file.component.spec.ts将在angular 7 verison中为我工作。


-2
投票

如果您将spec文件指定为参数,则有效。

例如:

测试foo.spec.ts

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.