在BrowserStack上执行e2e测试:位置“/”无效

时间:2018-03-12 11:18:59

标签: angular protractor browserstack

我正在尝试运行初始开箱即用的e2e测试,这些测试是为新的Angular项目生成的。

这是我的测试结果:

import { browser, by, element } from 'protractor';

describe('angular5-e2e App', () => {
  it('should display welcome message', () => {
    browser.get('/')
      .then(() => {
        let text = element(by.css('app-root h1')).getText();
        expect(text).toEqual('Welcome to app!');
     });
  });
});

使用ng e2e在本地运行正常。当我尝试仅在BrowserStack上执行相同的操作时,它会失败。这是我的配置

const { SpecReporter } = require('jasmine-spec-reporter');

exports.config = {
  allScriptsTimeout: 11000,
  specs: [
    './e2e/**/*.e2e-spec.ts'
  ],
  capabilities: {
    'browserstack.user': '<my-username>',
    'browserstack.key': '<my-password>',
    'browserName': 'chrome'
  },
  // directConnect: true,
  // baseUrl: 'http://localhost:4200/',
  'seleniumAddress': 'http://hub-cloud.browserstack.com/wd/hub',
  framework: 'jasmine',
  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 30000,
    print: function() {}
  },
  onPrepare() {
    require('ts-node').register({
      project: 'e2e/tsconfig.e2e.json'
    });
    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
  }
};

但是这失败了以下消息:

enter image description here

这里有什么问题?我在配置中遗漏了什么吗?

修改

在测试中指定绝对网址:

browser.get('http://localhost:4200/')
      .then(() => {

然后导致了这个错误:

enter image description here

在错误中访问page,建议通过调用更改全局或本地等待量角器等待的时间:

  

如何更改:要全局更改,请添加getPageTimeout:   timeout_in_millis到您的Protractor配置文件。为   单独调用get,传递一个额外的参数:   browser.get(address,timeout_in_millis)

所以在我的browser.get中我添加了15000作为第二个参数(最长等待时间似乎是11秒 - 尽管这是因为我的配置设置了allScriptsTimeout: 11000)并且它失败并出现此错误:

enter image description here

编辑2

我认为这是Protractor无法连接到运行的本地Angular应用程序的问题 - 假设我的理解是正确的,那么它(应用程序)需要在本地运行才能通过BrowserStack进行测试。

我部署到我们的测试分支并再次运行测试,他们都通过了,但我希望这在本地工作。

0 个答案:

没有答案