首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >开始使用Protractor,Travis和SauceLabs

开始使用Protractor,Travis和SauceLabs
EN

Stack Overflow用户
提问于 2014-04-18 08:42:22
回答 1查看 3.7K关注 0票数 7

我正在尝试让我的开源项目测试并在Travis CI中运行。我让他们使用Selenium服务器在本地工作。

似乎是一个相对简单的过程,但我缺乏一些基本知识来完成这项任务。

我有我的.travis.yml文件:

代码语言:javascript
运行
复制
language: node_js
node_js:
  - "0.10"

env:
  global:
    - SAUCE_USERNAME=[my-username]
    - SAUCE_ACCESS_KEY=[my-key]

addons:
  sauce_connect: true

before_install:
  - npm install -g grunt-cli

我的量角器配置:

代码语言:javascript
运行
复制
exports.config = {
    sauceUser: process.env.SAUCE_USERNAME,
    sauceKey: process.env.SAUCE_ACCESS_KEY,

    capabilities: {
      'browserName': 'chrome',
      'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER,
      'build': process.env.TRAVIS_BUILD_NUMBER,
      'name': 'ngValidation Protractor Tests'
    },

    specs: ['demo/app/features/home/specs/*.spec.js'],

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

    baseUrl: 'http://localhost:' + (process.env.HTTP_PORT || '8000')
};

和Gruntfile

代码语言:javascript
运行
复制
protractor: {
    saucelabs: {
        options: {
            configFile: "saucelabs.spec.conf.js",
            args: {
                sauceUser: process.env.SAUCE_USERNAME,
                sauceKey: process.env.SAUCE_ACCESS_KEY
            }
        }
    }
}

...the问题

我认为所有的设置都是正确的,但是肯定缺少了一些东西,因为当我按下Github和Travis CI构建开始时,我开始在Travis构建日志中得到这个错误:

代码语言:javascript
运行
复制
Could not proxy http://localhost:8000....

我错过了什么让这两个人互相交谈并进行我的测试?

Travis构建日志以获取完整信息:https://travis-ci.org/GrumpyWizards/ngValidation/builds/23264543

编辑:基于已接受的答案:

我不是在运行服务器来处理我的文件!最后,我安装了https://www.npmjs.org/package/grunt-contrib-connect并设置了Grunt文件,如下所示:

代码语言:javascript
运行
复制
connect: {
  server: {
    options: {
      hostname: 'localhost',
      port: 9001
    }
  }
}
...
grunt.registerTask('travis', ['connect:test', 'protractor:saucelabs']);

然后,我更改了我的量角器配置文件如下:

代码语言:javascript
运行
复制
baseUrl: 'http://localhost:9001/'

嘿,我现在可以在我的机器上或者在Travis上运行一个本地服务器,它现在服务于我的文件,SauceLabs可以访问的文件.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-18 09:02:33

根据您提供的日志,我可以看到Selenium正在尝试连接到应用程序所在的localhost:8000。然而,我没有看到travis先在那里运行服务器。

根据Sauce Labs Travis integration guide

确保在测试开始前让Travis启动您的the应用程序。您的应用程序需要为页面服务,以便能够使用我们的浏览器对其进行测试。

通过将&附加到后台,您可以在后台运行命令:

代码语言:javascript
运行
复制
before_script:
  - ./my_server &
  - sleep 2 # give it some time to start
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23150585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档