2

我是 Angular 测试的新手,我想为我的应用程序执行 2 种测试:

  1. 单元测试 - 我选择使用Jest,因为我可以在不打开浏览器的情况下运行我的测试,并且它还支持使用--testNamePatern对特定情况进行测试。
  2. 端到端测试 - 我想试用Protractor,因为它可以在 Angular 中使用,并且还有一个庞大的 Angular 社区可供使用。

我的问题是,我可以在我的应用程序中同时使用 Jest 和 Protractor 吗?如果是,我是否需要配置任何东西才能在我的应用程序中同时使用它们。

4

1 回答 1

6

您可以在应用程序中同时使用 jest 和量角器。默认情况下,新的 Angular cli 版本为您提供了一个用于单元测试的业力运行器和一个用于同一应用程序内端到端测试的量角器运行器。你只是在用 Jest 改变 Karma。

  1. 我可以开玩笑地进行量角器测试(端到端)吗?你不能。

  2. 我可以使用量角器运行单元测试吗?你不能。

  3. 我可以在同一个应用程序中为端到端测试运行量角器并为单元测试运行 jest 吗?是的你可以。您只需要告诉 jest 要拾取哪些文件,并且与量角器相同。

  4. 我可以在一个文件或一次运行中获得这两个报告吗?你不能。您必须配置您的 Jest Runner 以打印与量角器报告不同的报告。

您可以同时使用 jest 和 protractor,而无需配置任何特殊内容。这是我使用量角器运行 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 回答