問題タブ [angular-cli-v7]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - ng test --code-coverage は、angular 7 にアップグレードした後、単体テスト レポートの pollyfills ファイルのみを考慮しています
angular 4 から 7 に更新しました。コード カバレッジ レポートを生成しようとすると、「ng test」コマンドはすべてのテスト ケースを適切に実行し、すべてのテスト ケースに合格しましたが、「ng test --code-coverage」は適切なレポートを生成していません。
生成される正しいレポートは次のとおりです。 ファイル polyfills.ts
実際のレポートには、すべての .ts ファイル report と html レポートがカバレッジ フォルダーに含まれている必要があります example ファイル
デモ スクリプト src/business
設定は以下の通りです。
修理:
次のパッケージを package.json の devDependencies に追加します。"@angular-devkit/build-ng-packagr": "~0.6.3", b. "ng-packagr": "^3.0.0-rc.2"
npm install (または yarn install) を実行します
次のように、angular.json のプロジェクトの下に src フォルダーの新しいエントリを作成します。
この新しいエントリに関する注意:
• Angular CLI では、プロジェクトの下のすべてのファイル パスが sourceRoot パスで始まる必要があります。例: メインの test.ts ファイルが scripts/test (親レベル) にある場合、テスト オプションのメイン属性は src/../scripts/test.ts を指す必要があります。• angular.json の projects プロパティの外で、defaultProject プロパティをデモ アプリケーションに設定してください。src/ フォルダーが ui-demo-lib の場合、demo/ フォルダーは ui-demo になります。このようにして、既存のビルド関数は壊れません。
リポジトリの test.ts ファイルで、すべてのインポートを削除し、次のものに置き換えます。
すべての手順を完了したら、必要に応じて追加のインポートを 1 つずつ追加してみてください。ただし、Angular 7 のテスト環境では上記のモジュールが必要です。他のモジュールは、いずれかのゾーン ファイルが使用されている場合 (async-testing など) にのみインポートする必要があります。次のモジュールは、リポジトリに関係なく互換性がなくなりました: • zone.js/dist/jasmine-patch
注: テストを指すパスが、テスト ファイルの場所に対して相対的であることを確認してください。UI_Demo は scripts/test.ts に test.ts ファイルがあるため、require.context('../src')
- src/tsconfig.spec.json で、files 属性に以下が含まれていることを確認します。a. test.ts ファイルの場所 (相対) b. polyfills.ts ファイルの場所 (相対、通常は demo フォルダーにあります)
- package.json 内: ng-test を使用するすべてのスクリプトを ng-test –project を使用するように変更します。b. PhantomJS への参照を置き換えて、代わりに ChromeHeadless を使用します。PhantomJS は、angular CLI V7 を介したカルマでは機能しません。c. 元。ng test –browsers=PhantomJS ------- ng test --project ui-demo-lib --browsers=ChomeHeadless
- オプション - tsconfig.spec.ts で、エントリ「**/ .d.ts」を include プロパティに追加します。
- 次のコマンドをテストします。ng test --project b. ng test --project --watch=false --browsers=ChromeHeadless –code-coverage c. gulp build-inline d. ng build --aot --output-path=dist (デフォルトでデモをビルドする必要があります)