首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未为自定义protractor.conf文件创建的Webdriver实例

未为自定义protractor.conf文件创建的Webdriver实例
EN

Stack Overflow用户
提问于 2019-04-16 07:01:12
回答 1查看 404关注 0票数 2

我想在Travis中集成我的E2E套件,所以我遵循了的文章。正如本文中提到的,我已经为Travis构建创建了一个自定义protractor.ci.conf.js文件。我已经将这个文件放置在我的e2e文件夹中(路径:e2e/protractor.ci.conf.js)。

我的自定义e2e/protractor.ci.conf.js文件和角生成的protractor.conf.js文件的唯一区别是显示在下面的args属性中的值。

e2e/protractor.ci.conf.js

代码语言:javascript
复制
chromeOptions: {
      args: [
        '--headless',
        'window-size=1920,1080'
      ]
    }

protractor.conf.js

代码语言:javascript
复制
const SpecReporter = require('jasmine-spec-reporter').SpecReporter;

exports.config = {
  allScriptsTimeout: 11000,
  specs: [
   './e2e/**/*.e2e-spec.ts'
  ],
  capabilities: {
    shardTestFiles: true,
    maxInstances: 2,
    'browserName': 'chrome',
    chromeOptions: {
      args: ['--start-maximized']
    }
  },
  directConnect: true,
  baseUrl: 'localhost:4000/',
  framework: 'jasmine',
  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 300000,
    print: function () {
    }
  },
  useAllAngular2AppRoots: true,
  onPrepare: function () {
    jasmine.getEnv().addReporter(new SpecReporter());
    require('ts-node').register({
      project: 'e2e/tsconfig.json'
    });
  }
};

在我的package.json文件中,有两个脚本,一个用于运行测试,一个用于本地,另一个用于Travis

Package.json (位于protractor.conf.js所在的同一级别)

代码语言:javascript
复制
 "scripts": {
    ...
    "test": "ng test --watch=false",
    "pree2e": "webdriver-manager update",
    "e2e": "concurrently --kill-others \"ng e2e --port=4000\" \"npm run _server:run\"",
    "e2e:ci": "concurrently --kill-others \"ng e2e --port=4000 --protractor-config=e2e/protractor.ci.conf.js\" \"npm run _server:run\"",
    "_server:run": "tsc -p ./server && concurrently \"tsc -w -p ./server\" \"nodemon dist/server/index.js\" ",
    ...
  },

.travis.yml

代码语言:javascript
复制
branches:
 only:
  - staging
  - prod
  - functional-testing
 script:
   ...
  - if [[ $TRAVIS_COMMIT_MESSAGE == *"[skip e2e]"* ]]; then echo "skipping E2E test"; else npm run e2e:ci; fi
  ...
before_deploy:
  - sed -i '/dist/d' .gitignore
  - git add . && git commit -m "latest build"
  - cd $TRAVIS_BUILD_DIR/dist

问题

简单地运行npm run e2e时,每个测试都可以正常工作。但是,当我使用npm run e2e:ci命令时,脚本会挂起,而WebDriver的实例也不会运行。

I/launcher - 运行0实例的 - 

而不是一个或两个实例。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-18 12:34:54

这是因为您创建了一个新的配置文件,并且显然将其放置在/e2e文件夹中,而不是默认的根文件夹中。

在您的情况下,测试文件的路径也应该更新。

所以'./e2e/**/*.e2e-spec.ts'将改为'./**/*.e2e-spec.ts'

由于当前测试无法找到指定的任何文件,所以它不运行任何实例。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55702352

复制
相关文章

相似问题

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