【发布时间】: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