我已经将通过量角器运行的Cucumber测试转换为TypeScript。如果我从commnad行运行测试,如下所示:
rimraf cucumber/build && tsc -p cucumber && protractor cucumber/build/protractor.conf.js
这很好,可以成功且正确地运行测试。但是,如果我将这些命令移到脚本中,如下所示:
// package.json
...
"cucumber": "rimraf cucumber/build && tsc -p cucumber && protractor cucumber/build/protractor.conf.js"
...
然后它跌倒并出现以下错误:
[13:54:55] I/launcher - Running 1 instances of WebDriver
[13:54:55] I/direct - Using ChromeDriver directly...
[13:54:55] E/direct - Error code: 135
[13:54:55] E/direct - Error message: Could not find update-config.json. Run 'webdriver-manager update' to download binaries.
[13:54:55] E/direct - Error: Could not find update-config.json. Run 'webdriver-manager update' to download binaries.
我对量角器,黄瓜和硒非常陌生,所以我不知道该怎么办!我已经尝试运行update命令,但是没有效果。
我的protractor.conf.ts看起来像这样:
import { Config } from 'protractor';
export let config: Config = {
allScriptsTimeout: 11000,
specs: [
'../features/**/*.feature'
],
seleniumAddress: 'http://localhost:4444/wd/hub',
capabilities: {
browserName: 'chrome',
chromeOptions: {
args: ["--disable-gpu"]
}
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'custom',
frameworkPath: require.resolve('protractor-cucumber-framework'),
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
},
onPrepare() {
require('ts-node').register({
project: require('path').join(__dirname, '../tsconfig.json')
});
const chai = require('chai');
const chaiAsPromised = require('chai-as-promised');
// Load chai-as-promised support
chai.use(chaiAsPromised);
// Initialise should API (attaches as a property on Object)
chai.should();
},
cucumberOpts: {
require: [
'./features/**/steps/*.steps.js'
]
}
};
有人可以帮忙吗?
答案 0 :(得分:0)
这是根据npm
scripts
设计的。如果在scripts
的{{1}}块中定义cmd,npm将尝试从项目本地软件包文件夹package.json
中查找cmd中使用的可执行二进制文件。
直接在cmd窗口中输入并执行<folder of package.json>/node_modules/.bin
时,此处的可执行二进制文件protractor cucumber/build/protractor.conf.js
是从protractor
环境变量中找到的,而不是从项目本地包文件夹中找到的。
这是在package.json的PATH
中找到executable binary
而不是package.json的区别。
要解决您的问题,您应该对项目本地软件包执行webdriver-manager更新,这会将scripts
创建到项目本地软件包文件夹中。
update-config.json