剧作家 - Cucumberjs - 倾城报告

问题描述 投票:0回答:3

我正在尝试使用 Cucumber 在 Playwright 中实现 Allure 报告。我正在以下一种方式运行这些功能:

npm run test -- --tags "@Something"

执行后,我输入:

npm run allure generate
,但浏览器显示 Allure Report Unknown NaN%

这是我的 package.json 文件:

{
  "name": "playwright",
  "version": "1.0.0",
  "description": "E2E Automation Framework",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "allure:generate": "npx allure generate ./allure-results --clean",
    "allure:open": "npx allure open ./allure-report",
    "allure:serve": "npx allure serve",
    "test": "./node_modules/.bin/cucumber-js --require cucumber.cjs --require step-definitions/**/*.cjs --require features/**/*.js",
    "allure-reports": "node_modules/.bin/allure generate ./reports/allure/allure-results/  -o ./reports/allure/allure-report/ --clean && allure open ./reports/allure/allure-report",
    "posttest": "npm run allure:generate",
    "allure": "allure serve reports/allure-results"
  },
  "author": "X",
  "license": "ISC",
  "dependencies": {
    "@cucumber/cucumber": "^8.7.0",
    "chai": "^4.3.6",
    "prettier": "^2.7.1",
    "ts-jest": "^29.0.3"
  },
  "jest": {
    "verbose": true,
    "moduleDirectories": [
      "node_modules",
      "src"
    ],
    "preset": "ts-jest/presets/js-with-ts",
    "testEnvironment": "node",
    "allowJs": true,
    "transform": {
      "^.+\\.jsx?$": "babel-jest"
    },
    "transformIgnorePatterns": [
      "<rootDir>/node_modules/(?!variables/.*)"
    ]
  },
  "devDependencies": {
    "@babel/core": "^7.19.6",
    "@babel/preset-env": "^7.19.4",
    "@babel/register": "^7.18.9",
    "@jest/globals": "^29.3.0",
    "@playwright/test": "^1.27.1",
    "@testing-library/jest-dom": "^5.16.5",
    "@testing-library/react": "^13.4.0",
    "allure-commandline": "^2.18.1",
    "allure-playwright": "^2.0.0-beta.19",
    "babel-jest": "^29.2.2",
    "experimental-allure-playwright": "^0.0.3",
    "identity-obj-proxy": "^3.0.0",
    "jest": "^29.2.2",
    "playwright": "^1.27.1",
    "react-test-renderer": "^18.2.0"
  }
}

如果有人可以帮助我吗?预先感谢。

javascript playwright allure cucumberjs
3个回答
2
投票

我发现您正在使用

"test": "./node_modules/.bin/cucumber-js
执行测试用例。这意味着配置应该在您的
cucumber.js

// cucumber.js
let options = [
  '--require-module ts-node/register', // Load Typescript module
  '--require ./steps/**.ts', // Load steps
  '--format progress', // Load custom formatter
  '--format json:reports/cucumber_report.json', // JSON report
  '--format html:reports/cucumber-report.html',
  //'--format ./reporter.ts', // Allure report
  '--publish-quiet',
  '--tags @mytag',
  '--parallel 2',
  '--retry 0',
].join(' ')

let run_features = [
  './features/', // Specify our feature files location
  options,
].join(' ')

module.exports = {
  test_runner: run_features,
  parallel: 2,
}

正如你所看到的,有一条注释行是为了吸引人。当我们取消注释这一行时,reporter.js 将成为报告格式,在我的例子中,我从here

复制

我在

package.json
的脚本是:

  "scripts": {
        "test": "cucumber-js -p test_runner",
        "allure:generate": "npx allure generate ./allure-results --clean",
        "allure:open": "allure open allure-report",
        "all": "npm test && npm run allure:generate && npm run allure:open"
  },

0
投票

我在 package.json 中为 Playwright-jest-allure 设置了如下内容。

{
  "name": "playwright",
  "version": "1.0.0",
  "description": "Sab Playwright",
  "main": "index.js",
  "author": "Sab",
  "license": "MIT",
  "dependencies": {
    "jest": "^27.5.1",
    "jest-playwright-preset": "^1.7.0",
    "playwright": "^1.20.2"
  },
  "scripts": {
    "test": "jest"
  },
  "devDependencies": {
    "jasmine-allure-reporter": "^1.0.2",
    "jest-allure": "^0.1.3",
    "jasmine":"^3.7.0",
    "@wdio/allure-reporter": "^7.16.14",
    "@wdio/cli": "^7.5.2",
    "allure-commandline": "^2.17.2"

  }
}

下面是 allure-results 和 allure-report ,后者在运行成功并执行命令后生成 -

npx allure generate ./allure-results --clean

allure-results 请确保在此处生成用于测试运行的 xml'

倾城报告:

对于 cucumberjs,除了钩子、cucumber 配置文件之外,没有什么太大的不同。如果您仍然遇到问题,请告诉我。我可以发布我在上面所做的设置。


-3
投票

嗨@Sab,您能分享一下您为 cucumberjs 所做的设置吗?我会非常感激!

我正在尝试解决这个问题,但目前还没有运气,我正在使用剧作家/黄瓜->,我想要获得 Allure 报告,但由于某种原因,结果没有被获取。

PS。如果你能用 JS 而不是 TS 来实现那就太好了

谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.