有一个选项.angular-cli.json
可以禁用*.spec
文件的自动创建,例如,对于组件,请参阅json schema。
这是一个非常不错的功能,因为个人(这只是我的观点)在快速发展的项目中测试组件可能并不是真正值得的。
但是有时候我想有一个选项来*.spec
为已经存在的组件/服务/管道/任何东西生成/重新创建相应的文件。
使用某些命令行调用可能吗?
创建了功能请求,让我们看看它如何进行...
欢迎各位兄弟 发布技术文章
这里的技术是共享的
有一个选项.angular-cli.json
可以禁用*.spec
文件的自动创建,例如,对于组件,请参阅json schema。
这是一个非常不错的功能,因为个人(这只是我的观点)在快速发展的项目中测试组件可能并不是真正值得的。
但是有时候我想有一个选项来*.spec
为已经存在的组件/服务/管道/任何东西生成/重新创建相应的文件。
使用某些命令行调用可能吗?
创建了功能请求,让我们看看它如何进行...
选择要在其中生成规格的目录,然后它将生成所有Angular规格。
仅当spec文件不存在时才生成文件,并且component / directive / guard / pipe / service遵循angular-cli文件生成名称。
npm install -g angular-spec-generator
angular-spec-generator 'C:\Users\Alan\Desktop\test'
有两种解决方案:
1:创建的副本@angular/cli
,将您自己的代码添加(或扩展)到现有ng new
命令(https://github.com/angular/angular-cli/blob/master/packages/%40angular/cli/commands/new。 ts)并集成到您的全局已安装@angular/cli
。这可能是不切实际的,不值得您花费时间。
2:向@angular/cli
团队提出合并要求,以整合您的想法,如果代码有效并且想法看起来足够好,他们可以添加它。
可以使用https://github.com/smnbbrv/ngx-spec创建现有.ts文件的支架
要在Angular项目中安装:
npm i -D ngx-spec@^2.0.0
(-D是--save-dev的简写)
用法示例(用于服务):
ng g ngx-spec:spec path/my.service
要么
ng g ngx-spec:spec path/my.service.ts
对于服务,这不会设置要通过注入创建的测试。调整一下,使测试看起来像这样:
import { TestBed, inject } from '@angular/core/testing';
import { DataService } from './data.service';
import { AuthService } from './auth.service';
import { HttpClient, HttpHandler } from '@angular/common/http';
describe('DataService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
providers: [DataService, AuthService, HttpClient, HttpHandler
]
});
});
it('should be created', inject([DataService, AuthService], (service: DataService) => {
expect(service).toBeTruthy();
}));
});
这也意味着可以使用通配符生成测试,例如
ng g ngx-specs '**/*
这对我不起作用-请参阅GitHub问题:
https://github.com/smnbbrv/ngx-spec/issues/10
注意 -作为实施测试驱动开发的策略,我发现最简单的方法是搜索和删除*.spec.ts
在Angular项目中自动创建的所有现有文件,这些文件是初始工件创建(通过在Windows资源管理器中搜索)的一部分,然后作为起点,我使用以下方法为主要Angular数据提供程序服务创建了一个测试ngx-spec