我用Angular-CLI构建了Angular2项目(beta 20)。

是否有一种方法仅针对一个选定的规范文件运行测试?

我曾经有一个基于Angular2的项目,我可以手动向jasmine文件添加规格。但我不知道如何在因果测试之外设置这个,也不知道如何用Angular-CLI构建将因果测试限制在特定的文件上。


当前回答

一个简单的方法是用f开头。

fdescribe('testecomponente', () => {
  fit('should create', () => {
    //your code 
  }
  
}
  

其他回答

如果您在一个使用monorepo架构的项目中工作,那么您必须在命令行中将项目名称写在脚本后。 例如:

ng test MyProject1Name -- --include='myComponent.component.spec.ts'

对于像我这样正在寻找一种在Angular中运行单一规范的方法并发现了这个SO的人来说更是如此。

根据最新的Angular文档(撰写本文时是v9.0.6), ng test命令有一个——include选项,你可以在其中指定一个*.spec.(ts|tsx)文件目录,也可以只指定一个.spec.(ts|tsx)文件本身。

https://angular.io/cli/test

用,包括

这是一种包含的工作

ng test --include src/app/path-to-component/path-component.component.spec.ts

我试过——主要,但它显示所有失败的结果,而它不是。main会改变主测试。ts文件。

在bash终端中,我喜欢使用双破折号。使用VS Code,你可以在资源管理器或打开选项卡上右键单击规范文件。然后选择“复制相对路径”。运行下面的命令,从剪贴板粘贴相对路径。

npm t -- --include relative/path/to/file.spec.ts

双破折号标志着npm t命令选项的结束,并将之后的任何内容传递给下一个指向ng t的命令。它不需要任何修改,并快速给出所需的结果。

这在Angular 7中为我工作。它基于ng命令的——main选项。我不确定这个选项是否没有记录,是否可能会更改,但它适合我。我在包里放了条线。Json文件在脚本部分。在这里,我使用ng test命令的——main选项指定了.spec文件的路径。ts文件,我想执行。例如

"test 1": "ng test --main E:/WebRxAngularClient/src/app/test/shared/my-date-utils.spec.ts",

您可以像运行任何此类脚本一样运行该脚本。我通过点击npm部分的“test 1”在Webstorm中运行它。