带有打字稿实现的量角器片不起作用



所以我有以下情况。

我们有一个基于这个框架的量角器-黄瓜框架。

框架已修改为配置文件在 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);
}
}
};

回顾一下实现的框架,现在他们已经实现了量角器片,这是我需要包含的内容。

我已经尝试使用正在使用的实际配置,并且可以在这里看到,但是当我尝试运行它时,我收到以下错误:

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:UsersProtractorbuildconfigconf.debug.js'

请注意,我已经更改了量角器参数以加载上面显示的配置,因此它显示无法加载 config.debug.js。

我还浏览了 Nick Tomlin的量角器片和黄瓜特定文档的存储库.log并在 After 支持代码中添加了必要的控制台并测试了从 cli 运行量角器薄片,但似乎没有任何效果。我得到上面的错误,后跟:

使用黄瓜解析输出 测试失败,但未找到规格。

所有规范将再次运行。重新运行测试:测试尝试 2

但是没有运行任何测试,即根本没有运行。

当我使用 npm 运行通常的配置时,一切都运行良好,无需重新运行量角器片。

任何人都可以在这个问题上提供他们的 2 美分,我错过了什么?

我已经搜索了很多以找到一个打字稿示例,但还没有,除非我错过了它。

抱歉,我知道它很长,但想尝试涵盖我尝试过的所有内容。

提前谢谢。

我在嵌入protractor-flake时遇到了类似的问题。

1) 检查您当前的debug.conf.js是否正常工作。通过将debug.conf.js复制到计算机上的某个文件夹中并在 args 中以绝对路径运行protractor-flakedebug.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);
});
})();

您必须在 config:'./e2e-tests/config/protractor.e2e.conf.js'中调整此路径,它应该是指向构建javascriptprotractor.e2e.conf.js的正确相对路径。

debug.conf.ts中,您可以看到默认导出,这是一个函数,并且该函数会立即执行。这意味着,如果我们运行require('./somePath/debug.conf'),或ts-node debug.conf.tsprotractor-flake将直接执行。然后,例如,您可以存储以下 npm 脚本来运行protractor-flake

// ...
"scripts": {
"protractor.flake": "ts-node ./somePath/debug.conf.ts"
}
// ...

如果有什么不清楚或不起作用,请告诉我,干杯!

最新更新