Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium 未为自定义dragrator.conf文件创建Webdriver实例_Selenium_Selenium Webdriver_Protractor_Travis Ci - Fatal编程技术网

Selenium 未为自定义dragrator.conf文件创建Webdriver实例

Selenium 未为自定义dragrator.conf文件创建Webdriver实例,selenium,selenium-webdriver,protractor,travis-ci,Selenium,Selenium Webdriver,Protractor,Travis Ci,我想在Travis中集成我的E2E套件,所以我遵循了这篇文章。正如文章中提到的,我已经创建了Travis构建的一个自定义dragrator.ci.conf.js文件。我已将此文件放在我的e2e文件夹中(路径:e2e/dragrator.ci.conf.js) 我的自定义e2e/dragrator.ci.conf.js文件和角度生成的dragrator.conf.js文件中唯一的区别是下面显示的args属性中的值 e2e/dragotor.ci.conf.js chromeOptions: {

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

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

e2e/dragotor.ci.conf.js

chromeOptions: {
      args: [
        '--headless',
        'window-size=1920,1080'
      ]
    }
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'
    });
  }
};
量角器.conf.js

chromeOptions: {
      args: [
        '--headless',
        'window-size=1920,1080'
      ]
    }
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(与grandor.conf.js所在的级别相同)

.travis.yml

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
,每个测试都可以正常运行。但是当我使用
npmrune2e:ci
命令脚本时,会挂起,并且不会运行WebDriver实例

I/发射器 — 正在运行0个WebDriver实例


而不是1或2个实例。

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

您案例中测试文件的路径也应该更新

因此,
。/e2e/***/.e2e-spec.ts'
将更改为
。/***/.e2e-spec.ts'


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

您能为Travis共享您的配置文件吗?还有,为什么您同时需要
——杀死其他人
?也可以用&&@Oleksii更改“\”吗?我已经添加了
.yml
文件脚本。请check@Oleksii之所以添加它,是因为它将同时运行两个任务(而不是在两个不同的终端上运行它们),并且如果进程中有任何一个(前端或服务器)死了,它也会结束另一个,因为另一个将是无用的then@Oleksii我也试过
&
了。但是它仍然挂着@Oleksii。我还添加了完整的
dragotor.conf.js
文件哦,谢谢,@Manzur先生,你今天刚刚救了我的命。我犯了一个多么愚蠢的错误啊