所以我有以下情况。
我们有一个基于this框架的量角器-黄瓜框架。
已对框架进行了修改,以将配置文件写入TS中。这是一个示例配置:
import { browser, Config } from 'protractor';
import { Reporter } from '../support/reporter';
const jsonReports = process.cwd() + '/reports/json';
export const config: Config = {
directConnect: true,
SELENIUM_PROMISE_MANAGER: false,
stackTrace: true,
capabilities: {
browserName: 'chrome'
},
framework: 'custom',
frameworkPath: require.resolve('protractor-cucumber-framework'),
specs: [
'../../features/*.feature',
'../../features/**/*.feature',
],
onPrepare: () => {
browser.manage().window().maximize();
Reporter.createDirectory(jsonReports);
},
cucumberOpts: {
compiler: 'ts:ts-node/register',
format: 'json:./reports/json/cucumber_report.json',
require: [
'../../stepdefinitions/*.ts',
'../../stepdefinitions/**/*.ts',
'../../support/*.ts'
],
strict: true,
tags: '(@e2e) and (not @ignore) and (not @notImplemented)',
keepAlive: false,
},
allScriptsTimeout: 10000,
getPageTimeout: 5000,
onComplete: () => {
return Reporter.generateReports();
},
afterLaunch: exitCode => {
if (exitCode === 1) {
console.log('Actual Exit code: ' + exitCode);
process.exit(0);
}
}
};
回头看一下这个框架是从现在开始实施的,现在他们已经实现了量角器薄片,这是我需要包括的东西。
我尝试使用正在使用的实际配置,可以看到here,但是当我尝试运行它时,出现以下错误:
E/configParser - Error code: 105
[09:14:04] E/configParser - Error message: failed loading configuration file ./build/config/conf.debug.js
[09:14:04] E/configParser - Error: Cannot find module 'C:\Users\Protractor\build\config\conf.debug.js'
请注意,我已经更改了量角器args以加载上面显示的配置,因此它表明无法加载config.debug.js。
我还浏览了尼克·汤姆林(Nick Tomlin)的量角器片库和黄瓜特定文档,并在After支持代码中添加了必要的console.log,并从cli中测试了量角器片,但是似乎没有任何效果。我收到上面的错误,然后是:
使用黄瓜来解析输出 测试失败,但未找到任何规格。
所有规格都将再次运行。重新运行测试:尝试2
但是没有运行任何测试。完全没有运行。
当我使用npm运行常规配置时,所有程序运行良好,而无需重新运行量角器薄片。
有人可以为此提供2美分吗?我想念什么?
我已经进行了很多搜索,找到了一个打字稿示例,但到目前为止,还没有找到,除非我错过了。
抱歉,我知道这很久了,但想尝试涵盖我尝试过的所有内容。
谢谢。
答案 0 :(得分:1)
嵌入protractor-flake
时,我也遇到了类似的问题。
1)检查您当前的debug.conf.js
是否有效。通过将debug.conf.js
复制到计算机上的某个文件夹中,并使用args中的protractor-flake
的绝对路径运行debug.conf.js
来实现此目的。
2)如果第1步有效,则必须将debug.conf.js
迁移到typescript
,只需将.ts
放在最后并将内容更改为:
// debug.conf.ts
const protractorFlake = require('protractor-flake');
const argv = require('yargs').argv;
export default (function () {
protractorFlake({
maxAttempts: 2,
parser: 'cucumber',
protractorArgs: [
'./e2e-tests/config/protractor.e2e.conf.js',
`--feature=${argv.feature || '*'}`,
`--tags=${argv.tags || ''}`
]
}, (status) => {
process.exit(status);
});
})();
您将不得不在配置'./e2e-tests/config/protractor.e2e.conf.js'
中调整此路径,它应该是指向已构建的javascript
protractor.e2e.conf.js
的正确相对路径。
在debug.conf.ts
中,您可以看到默认导出,该导出是一个函数,该函数将立即执行。这意味着,如果我们运行require('./somePath/debug.conf')
,或ts-node debug.conf.ts
,protractor-flake
将直接执行。然后,您可以例如存储以下npm脚本来运行protractor-flake
:
// ...
"scripts": {
"protractor.flake": "ts-node ./somePath/debug.conf.ts"
}
// ...
让我知道是否有不清楚或不起作用的地方,干杯!