【问题标题】:Getting the angular app to run when using protractor使用量角器时让角度应用程序运行
【发布时间】:2014-12-31 09:03:22
【问题描述】:

我一定是在这里遗漏了什么......

我正在尝试使用量角器为我的 Angular 应用程序运行 e2e 测试。配置文件大致如下:

allScriptsTimeout: 11000,

specs: [          
    'src/**/*.e2e.js'
],

capabilities: {
    browserName: 'firefox'
},

baseUrl: 'http://localhost:8000/app/',

framework: 'jasmine',

jasmineNodeOpts: {
    showColors: true,
    isVerbose : true,
    includeStackTrace : true,
    defaultTimeoutInterval: 30000
}

测试看起来像这样:

describe('example test', function() {
    beforeEach(function () {
        browser.get('index.html');
    });

    it('should test something trivial', function() {
        expect(2).toEqual(2);
    });
});

我正在使用 grunt 运行它,使用“grunt-protractor-runner”。 当 grunt 执行量角器任务时,我看到以下内容(使用 --verbose 运行 grunt):

Starting selenium standalone server...
[launcher] Running 1 instances of WebDriver
Selenium standalone server started at http://172.17.113.30:53524/wd/hub

然后Firefox浏览器窗口打开,并将URL正确解析为:http://localhost:8000/app/index.html

但是(这是最后的问题......),firefox 找不到该页面,即我收到以下错误:

我也尝试使用 Chrome 运行它,但得到了相同的结果。

我的问题是,我错过了什么? 换句话说,将 Angular 应用程序部署在 localhost:8000 是谁的工作? 部署是由 protractor/selenium/grunt 完成的,还是我需要自己部署在某个网络服务器上?

鉴于我在网上找不到像我这样的问题,我想我在这里遗漏了一些微不足道的东西。请帮忙。

【问题讨论】:

  • 手动打开此网址是否可以看到内容?
  • 不,我应该什么时候看到那里的内容,仅在测试运行期间,还是一直?
  • 量角器的工作是运行测试(它正在正确地执行)。在开始测试之前,您需要测试的任何 URL(例如 google.com 和在您的情况下为 localhost:8000/app/index.html)都应该启动并运行
  • 所以,如果我理解正确,我需要设置另一个任务(可能是一个繁重的任务),将我的 Angular 应用程序部署到某个 Web 服务器?我尝试简单地在本地文件上运行测试(为什么我实际上需要更多?),但它要求脚本无权访问本地文件系统。
  • 是的。首先需要部署您的 Angular 应用程序(不一定是网络服务器,本地主机也可以正常工作)。测试将在已部署的应用程序(可以部署在本地计算机上)上运行,而不仅仅是在未部署的本地文件上运行。部署后,您当前的测试将运行得非常好!

标签: angularjs gruntjs jasmine protractor angularjs-e2e


【解决方案1】:

所以,如前所述。在执行任何测试之前,需要部署 Angular App。首先部署 Angular 应用,然后使用 Protractor 开始测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-29
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 2020-07-03
    • 2013-12-07
    • 1970-01-01
    相关资源
    最近更新 更多