Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度4(弹出)和E2E测试(量角器/硒配置)_Javascript_Angular_Testing_Protractor - Fatal编程技术网

Javascript 角度4(弹出)和E2E测试(量角器/硒配置)

Javascript 角度4(弹出)和E2E测试(量角器/硒配置),javascript,angular,testing,protractor,Javascript,Angular,Testing,Protractor,我正试图在弹出的Angular 4项目上通过量角器/Selenium运行E2E测试 Mypackage.json: ... "scripts": { "pree2e": "webdriver-manager update --standalone false --gecko false --quiet node", "e2e": "protractor ./protractor.conf.js" } ... My量角器.conf: exports.config = {

我正试图在弹出的Angular 4项目上通过量角器/Selenium运行E2E测试

My
package.json

...
"scripts": {
    "pree2e": "webdriver-manager update --standalone false --gecko false --quiet node",
    "e2e": "protractor ./protractor.conf.js"
}
...
My
量角器.conf

exports.config = {
    seleniumAddress: 'http://localhost:4444/wd/hub',
    directConnect: true,
    allScriptsTimeout: 60000,
    getPageTimeout: 60000,
    specs: [
        './src/e2e/**/*.e2e-test.ts'
    ],
    capabilities: {
        'browserName': 'chrome'
    },
    jasmineNodeOpts: {
        showColors: true,
        defaultTimeoutInterval: 60000
    },
    onPrepare() {
        require('ts-node').register({
            project: 'tsconfig.e2e.json'
        });

        jasmine.getEnv().addReporter(new SpecReporter({
            spec: {
                displayStacktrace: true
            }
        }));

        browser.driver.manage().timeouts().setScriptTimeout(60000);
    }
};

运行
npm时,运行e2e
Chrome会启动,但每次测试都会尝试打开
data:text/html,
,然后快速关闭。我错过了什么?我尝试将
baseUrl
添加到我的
grandor.conf
,但没有帮助,因为Selenium似乎还没有运行。

我终于找到了解决问题的方法。我不知何故需要运行
ngserve
,由于项目被弹出,现在可以通过
npm run start
运行它。这是一个Travis CI部署(我极力推荐),因此请参阅脚本之前的

before_script:
    - nohup npm run start &
script:
    - npm run build -aot --target=production --environment=prod
    - npm run test
    - npm run e2e
Final
package.json
(在
ng弹出后保留默认值)

Final
dragrator.conf
(在
ng弹出后保持默认值)

以下是当您弹出时发生的情况:


两天半的腰围。感谢您的团队解决了这个问题,真的,谢谢您。

我终于找到了解决问题的方法。我不知何故需要运行
ngserve
,由于项目被弹出,现在可以通过
npm run start
运行它。这是一个Travis CI部署(我极力推荐),因此请参阅脚本之前的

before_script:
    - nohup npm run start &
script:
    - npm run build -aot --target=production --environment=prod
    - npm run test
    - npm run e2e
Final
package.json
(在
ng弹出后保留默认值)

Final
dragrator.conf
(在
ng弹出后保持默认值)

以下是当您弹出时发生的情况:


两天半的腰围。感谢您的CLI团队解决此错误,真的,谢谢。

您是否忘记指定应用程序
baseUrl
?它在哪里运行?:)您必须在
conf
文件中指定。例如,看看这个conf文件——这是一个很好的例子:)说真的,我不知道应该在那里指定什么?Selenium在哪里运行?如果我指定
http://localhost:4444
它不起作用。您应该在配置中使用
seleniumAddress
directConnect
,但不能同时使用两者。您可以看到,当您提供selenium地址时,它会在您的系统中本地运行selenium服务器。为此,您需要单独安装selenium服务器,但如果使用
directConnect
,则不需要安装selenium服务器,它将直接启动浏览器。在
baseUrl
中提供应用程序url,现在使用
directConnect
,请参见!。请参考此链接了解更多信息-您是否忘记指定应用程序
baseUrl
?它在哪里运行?:)您必须在
conf
文件中指定。例如,看看这个conf文件——这是一个很好的例子:)说真的,我不知道应该在那里指定什么?Selenium在哪里运行?如果我指定
http://localhost:4444
它不起作用。您应该在配置中使用
seleniumAddress
directConnect
,但不能同时使用两者。您可以看到,当您提供selenium地址时,它会在您的系统中本地运行selenium服务器。为此,您需要单独安装selenium服务器,但如果使用
directConnect
,则不需要安装selenium服务器,它将直接启动浏览器。在
baseUrl
中提供应用程序url,现在使用
directConnect
,请参见!。请参考此链接了解更多信息-感谢发布您的解决方案。这也花了我好几天的时间。真让人恼火!感谢您发布您的解决方案。这也花了我好几天的时间。真让人恼火!
exports.config = {
    allScriptsTimeout: 11000,
    specs: [
        './src/e2e/**/*.e2e-test.ts'
    ],
    capabilities: {
        'browserName': 'chrome'
    },
    directConnect: true,
    baseUrl: 'http://localhost:4200/',
    framework: 'jasmine',
    jasmineNodeOpts: {
        showColors: true,
        defaultTimeoutInterval: 30000,
        print: function() {}
    },
    beforeLaunch: function() {
        require('ts-node').register({
            project: 'tsconfig.e2e.json'
        });
    },
    onPrepare() {
        jasmine.getEnv().addReporter(new SpecReporter({
            spec: {
                displayStacktrace: true
            }
        }));
    }
};