Rachnerd 测试插件
作者:rachnerd | 版本:v0.0.34
针对 NativeScript 运行位于源代码中的单元测试的解决方案(Angular 风格指南)
npm i --save rachnerd-test-plugin

nativescript-angular-unit-tests

此模块有助于维护 {N} + Angular 项目的 angular 风格指南文件夹结构。

此插件

  • 监视所有生成的 js 规范
  • 将所有生成的 js 规范文件复制到 app/tests 目录中的 .tmp 文件夹
  • 修正 require 路径以指向原始源。
  • 并行运行 "tns test [平台]"。

安装

npm i --save-dev nativescript-angular-unit-tests

将脚本添加到项目的 package.json 中并调用 'tns-test-angular'。

{
"scripts": {
"test.android": "tns-test-angular --platform=android",
"test.ios": "tns-test-angular --platform=ios"
}
}

Karma 配置示例

{
...
files: [
'app/tests/config.js',
'app/tests/.tmp/**/*.js'
],
...
}
// app/tests/config.ts
import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';
import { NS_COMPILER_PROVIDERS } from 'nativescript-angular/platform';
import { TestBed } from '@angular/core/testing';

TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(NS_COMPILER_PROVIDERS));

标志

运行特定的规范

|- /app
| - /login
| _ login.component.ts
| _ login.component.spec.ts
| - login.service.ts
| - login.servic.spec.ts
| - app.component.ts
| - app.component.spec.ts
npm run test.android -- --spec=login.service 
|- /app
| - /tests
| - /.tmp
| - /login
| login.service.spec.js

运行多个规范

|-- app
| |-- login
| | |-- shared
| | | |-- login.service.ts
| | | |-- login.service.spec.ts
| | |-- login.component.css
| | |-- login.component.html
| | |-- login.component.ts
| | |-- login.component.spec.ts
| |-- app.component.ts
| |-- app.component.spec.ts
npm run test.android -- --spec=login 
|-- app
| |-- tests
| | |-- .tmp
| | | |-- login
| | | | |-- shared
| | | | | |-- login.service.spec.js
| | | | |-- login.component.spec.js