2

Angular テストは初めてで、アプリケーションに対して 2 種類のテストを実行したいと考えています。

  1. 単体テスト -ブラウザーを開かずにテストを実行できるため、 Jestを使用することにしました。また、 --testNamePaternを使用した特定のケースのテストもサポートしています。
  2. エンド ツー エンドのテスト -分度器は Angular で利用可能であり、協力する大きな Angular コミュニティがあるため、試してみたいと思います。

私の質問は、アプリケーションで Jest と分度器の両方を使用できますか? はいの場合、アプリケーションで両方を使用するために何かを構成する必要がありますか?

4

1 に答える 1

6

アプリケーションでは jest と分度器の両方を使用できます。デフォルトでは、新しい angular cli リリースは、単体テスト用のカルマ ランナーと、同じアプリケーション内のエンド ツー エンド テスト用の分度器ランナーを提供します。Jest で Karma を変更しているだけです。

  1. jest で分度器テスト (エンドツーエンド) を実行できますか? いいえ、あなたがすることはできません。

  2. 分度器を使用して単体テストを実行できますか? いいえ、あなたがすることはできません。

  3. 同じアプリケーションで、エンド ツー エンド テスト用に分度器を実行し、単体テスト用に jest を実行できますか? はい、できます。選択するファイルをjestに指示するだけでよく、分度器でも同じです。

  4. 1 つのファイルまたは 1 回の実行で両方のレポートを取得できますか? いいえ、あなたがすることはできません。分度器レポートとは異なるレポートを印刷するには、jest ランナーを構成する必要があります。

特別な設定をしなくても、jest と分度器の両方を使用できます。これは、分度器で e2e テストを実行し、jest でライトハウス テストを実行するために使用している package.json のスニペットです。

{
  "name": "performance-tests",
  "version": "1.0.0",
  "description": "Performance tests and end to end tests.",
  "main": "jest.js",
  "scripts": {
    "debug": "node --inspect-brk ./node_modules/.bin/protractor protractor.conf.js",
    "pretest": "npm run tsc && npm run webdriver-update",
    "e2e": "npm run tsc && ./node_modules/protractor/bin/protractor protractor/compiled-js-files/protractor.conf.js",
    "grid": "sh run-grid.sh && npm run e2e",
    "tsc": "./node_modules/typescript/bin/tsc",
    "webdriver-update": "./node_modules/protractor/bin/webdriver-manager update --standalone --versions.standalone=3.8.0 --chrome --versions.chrome=78.0.3904.97",
    "lighthouse": "./node_modules/jest/bin/jest.js --verbose -t=lighthouse",
    "lighthouse-reports": "./node_modules/jest/bin/jest.js --verbose -t=lighthouse && node ./lighthouse/db.js"
  },
  "repository": {
    "type": "",
    "url": ""
  },
  "author": "Sankalan Parajuli",
  "license": "ISC",
  "bugs": {
    "url": ""
  },
  "homepage": "",
  "dependencies": {
    "@types/jasmine": "^3.3.12",
    "@types/jasminewd2": "^2.0.6",
    "@types/node": "^12.12.14",
    "jasmine": "^3.3.1",
    "lighthouse": "^4.0.0-beta",
    "protractor": "5.4.2",
    "protractor-beautiful-reporter": "^1.3.3"
  },
  "devDependencies": {
    "@types/request": "^2.48.3",
    "@types/selenium-webdriver": "^4.0.0",
    "csvtojson": "^2.0.8",
    "jest": "^23.4.1",
    "moment": "^2.24.0",
    "mongodb": "^3.1.13",
    "puppeteer": "^1.6.0",
    "request-promise": "^4.2.5",
    "ts-node": "^8.5.2",
    "typescript": "2.8.1"
  }
}

それが役に立てば幸い。

于 2019-12-23T12:50:34.743 に答える