Javascript onPrepare中未定义量角器浏览器
我正在使用angular 9并尝试设置一些e2e测试。我已经看到了许多onPrepare的例子,在这些例子中,他们可以使用浏览器。甚至他们的注释文档也显示了一个不起作用的示例 你知道为什么浏览器没有定义吗 这是pergrator.config.jsJavascript onPrepare中未定义量角器浏览器,javascript,angular,protractor,Javascript,Angular,Protractor,我正在使用angular 9并尝试设置一些e2e测试。我已经看到了许多onPrepare的例子,在这些例子中,他们可以使用浏览器。甚至他们的注释文档也显示了一个不起作用的示例 你知道为什么浏览器没有定义吗 这是pergrator.config.js // @ts-check // Protractor configuration file, see link for more information // https://github.com/angular/protractor/blob/ma
// @ts-check
// Protractor configuration file, see link for more information
// https://github.com/angular/protractor/blob/master/lib/config.ts
const { SpecReporter } = require('jasmine-spec-reporter');
const { browser } = require('protractor');
/**
* @type { import("protractor").Config }
*/
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./src/**/*.e2e-spec.ts'
],
capabilities: {
browserName: 'chrome'
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function() {}
},
onPrepare() {
require('ts-node').register({
project: require('path').join(__dirname, './tsconfig.json')
});
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
// this code is an example from the documentation of onPrepare
// but browser is undefined
return browser.getProcessedConfig().then(function(config) {
console.log('Executing capability', config.capabilities);
});
}
};
这里有一些关于角度的信息
Angular CLI: 9.0.7
Node: 10.19.0
OS: win32 x64
Angular: 9.0.7
... animations, cli, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Ivy Workspace: Yes
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.900.7
@angular-devkit/build-angular 0.900.7
@angular-devkit/build-optimizer 0.900.7
@angular-devkit/build-webpack 0.900.7
@angular-devkit/core 9.0.7
@angular-devkit/schematics 9.0.7
@ngtools/webpack 9.0.7
@schematics/angular 9.0.7
@schematics/update 0.900.7
rxjs 6.5.5
typescript 3.7.5
webpack 4.41.2
package.json
{
"name": "myapp3",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "~9.0.2",
"@angular/common": "~9.0.2",
"@angular/compiler": "~9.0.2",
"@angular/core": "~9.0.2",
"@angular/forms": "~9.0.2",
"@angular/platform-browser": "~9.0.2",
"@angular/platform-browser-dynamic": "~9.0.2",
"@angular/router": "~9.0.2",
"rxjs": "~6.5.4",
"tslib": "^1.10.0",
"zone.js": "~0.10.2"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.900.3",
"@angular/cli": "~9.0.3",
"@angular/compiler-cli": "~9.0.2",
"@angular/language-service": "~9.0.2",
"@types/node": "^12.11.1",
"@types/jasmine": "~3.5.0",
"@types/jasminewd2": "~2.0.3",
"codelyzer": "^5.1.2",
"jasmine-core": "~3.5.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~4.3.0",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage-istanbul-reporter": "~2.1.0",
"karma-jasmine": "~2.0.1",
"karma-jasmine-html-reporter": "^1.4.2",
"protractor": "~5.4.3",
"ts-node": "~8.3.0",
"tslint": "~5.18.0",
"typescript": "~3.7.5"
}
}
之所以发生这种情况,是因为您已从“量角器”导入浏览器,但它未定义。 无需导入,默认情况下,浏览器可在“onPrepare”方法中访问 因此,您需要删除导入,它将起作用
const { browser } = require('protractor'); // This line should be removed