我用Angular-CLI构建了Angular2项目(beta 20)。
是否有一种方法仅针对一个选定的规范文件运行测试?
我曾经有一个基于Angular2的项目,我可以手动向jasmine文件添加规格。但我不知道如何在因果测试之外设置这个,也不知道如何用Angular-CLI构建将因果测试限制在特定的文件上。
我用Angular-CLI构建了Angular2项目(beta 20)。
是否有一种方法仅针对一个选定的规范文件运行测试?
我曾经有一个基于Angular2的项目,我可以手动向jasmine文件添加规格。但我不知道如何在因果测试之外设置这个,也不知道如何用Angular-CLI构建将因果测试限制在特定的文件上。
当前回答
只是测试中需要的小变化。SRC文件夹中的Ts文件:
const context = require.context('./', true, /test-example\.spec\.ts$/);
在这里,test-example是我们需要运行的确切文件名
同样地,如果你只需要测试服务文件,你可以替换文件名,比如"/test-example.service"
其他回答
这在任何情况下都对我有效:
ng test --include='**/dealer.service.spec.ts'
然而,我通常得到“TypeError:不能读取属性'ngModule'的null”:
ng test --main src/app/services/dealer.service.spec.ts
@angular/cli 10.0.4版本
你的每一个。spec。Ts文件将其所有测试分组在描述块中,如下所示:
description ('SomeComponent',() =>{…}
你可以很容易地只运行这一个块,通过在describe函数名前加上f:
fdescribe('SomeComponent',() =>{…}
如果你有这样的函数,就不会运行其他描述块。 顺便说一句。你可以用it => fit做类似的事情,还有一个“黑名单”版本- x。所以:
Fdescribe和fit只会导致以这种方式标记的函数运行 Xdescribe和xit会导致以这种方式标记的函数以外的所有函数运行
在angular-cli中,你可以运行这个命令,测试只会包含你想要的spec文件。
Ng测试——包括规格文件的路径
仅适用于JetBrains WebStorm用户
我没有安装ng,所以不能运行ng测试…从命令行。我也不能安装它,因为它可能会把我现有代码库的Angular版本搞砸。我使用的是JetBrains WebStorm IDE,在其中你可以右键单击规格文件并运行测试。
配置测试。SRC文件夹中的Ts文件:
const context = require.context('./', true, /\.spec\.ts$/);
替换/ \ .spec \。Ts $/与您想测试的文件名。例如:/app.component\.spec\.ts$/
这将只对app.component.spec.ts运行测试。