我有一个NativeScript代码共享项目。我希望针对使用ng test
的Web版本使用Karma单元测试。由于构建测试时错误导入服务的.tns
版本,此操作失败。
下面是在最小的NativeScript代码共享项目中重新创建问题的步骤。
创建新的NativeScript代码共享项目
$ ng new -c=@nativescript/schematics ns-shared-test --shared
进入项目文件夹
$ cd ns-shared-test
生成新服务
$ ng generate service services/my-service
生成新组件
$ ng generate component my-component
修改my-component.component.ts
以使用我的服务
[添加到文件顶部:
import { MyServiceService } from '@src/app/services/my-service.service';
并替换构造函数:
constructor( private myService:MyServiceService ) { }
运行单元测试
$ ng test
拆分我的服务
$ cp src/app/services/my-service.service.ts src/app/services/my-service.service.tns.ts
修改my-service.service.tns.ts
以使用特定于NativeScript的内容
在文件顶部添加:
import { Color } from 'tns-core-modules/color/color';
并替换构造函数:
constructor() { new Color('white'); }
运行单元测试
$ ng test
对我有用的解决方案是:
ng test命令现在应该可以工作