我正在尝试使用 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"
}
}
如果有人可以帮助我吗?预先感谢。
我发现您正在使用
"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"
},
我在 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 配置文件之外,没有什么太大的不同。如果您仍然遇到问题,请告诉我。我可以发布我在上面所做的设置。
嗨@Sab,您能分享一下您为 cucumberjs 所做的设置吗?我会非常感激!
我正在尝试解决这个问题,但目前还没有运气,我正在使用剧作家/黄瓜->,我想要获得 Allure 报告,但由于某种原因,结果没有被获取。
PS。如果你能用 JS 而不是 TS 来实现那就太好了
谢谢!