问题陈述:我想知道如何配置 npm run test 命令,以便我可以从 dir 路径/文件夹运行一组功能文件/单个功能文件。
背景:我有一个使用 Playwright + Cucumber BDD + NPM + JavaScript 的自动化设置。我的执行脚本在 package.json 上定义,相应的配置详细信息在 cucumber.js 上定义。
当前设置:根据我当前的设置,当我运行
npm run test:env
命令时,它会运行整个套件。当我将 @TagName 添加到功能文件或特定场景后运行 npm run test:env --TAGS="@TagName"
命令时,它会单独运行这些测试。
有没有一种方法可以将目录路径传递给 npm run 命令,并运行该目录下的所有功能?
其他详情: 我有标签配置设置(标签:cucumber.js 中的 process...npm_config_tags),每当我在测试文件中设置特定标签并执行命令 npm run test:env --TAGS="@TagName" ,它仅执行具有该特定标签的测试。我想要一个类似的设置,使用它可以将文件夹路径传递给命令,并运行该文件夹下的所有测试。
这就是我的 package.json 的样子:
{
"name": "playwright-js-cucumber",
"version": "1.0.0",
"description": "",
"main": "/index.js",
"scripts": {
"pretest": "npx node src/helper/report/init.js",
"test": "cross-env ENV-qa cucumber-js-config-config/cucumber.js || true",
"test:qa": "cross-env ENV-qa cucumber-js-config-config/cucumber.js || true",
"posttest": "npx node src/helper/report/report.js",
"posttest:qa": "npx node src/helper/report/report.js",
"test: failed": "cucumber-js @rerun.txt",
"postinstall": "npx playwright install"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
#The List Of Dependencies
},
"dependencies": {
"@types/cucumber": "^7.0.0",
"@types/node": "^20.5.7",
"dotenv": "^16.3.1",
"luxon": "^3.4.4",
"xlsx": "0.18.5"
}
}
这就是我的 cucumber.js 的样子:
module.exports = {
default: {
tags: process.env.npm_config_tags || '',
formatOptions: {
snippetInterface: 'async-await',
},
paths: [
'src/test/features/*.feature',
'src/test/features/**/*.feature',
],
publishQuite: false,
dryRun: false,
require: [
'src/test/steps/*.js',
'src/test/steps/**/*.js',
'src/test/steps/**/**/*.js',
'src/hooks/hooks.js',
],
requireModule: ['@babel/register'],
format: [
'progress-bar',
'html:test-results/cucumber-report.html',
'json:test-results/cucumber-report.json',
'rerun:@rerun.txt',
],
parallel: 2,
},
};
为了运行单个功能文件,请使用此方法 改变路径
“路径”:[“src/features/.feature”],
并在终端中运行此命令
npm run test src/features/file1