【问题标题】:Jenkins - Jasmine reporter doesn't generate reports for protractor E2E testsJenkins - Jasmine 记者不会为量角器 E2E 测试生成报告
【发布时间】:2019-07-30 11:21:17
【问题描述】:

我想在 jenkins 上进行测试并通过 Jasmine 记者生成报告。 控制台显示成功,但没有生成报告。

我尝试手动创建一个文件夹,但没有任何新内容。 我尝试使用我的本地 protractor.conf.js 配置,它有效,但它没有给出报告,这就是我寻找如何生成它们的原因。

package.json

  "name": "chapter-11-code",
  "version": "1.0.0",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/wasshj/testingangularendtoend.git"
  },
  "scripts": {
    "e2e": "protractor",
    "lint": "tslint",
    "webdriver-circle": "webdriver-manager update --standalone false --gecko false --versions.chrome=2.40",
    "webdriver-update": "webdriver-manager update --gecko false",
    "tsc": "tsc"
  },
  "author": "Craig Nishina <craig.nishina@gmail.com>",
  "license": "MIT",
  "devDependencies": {
    "@types/jasmine": "2.5.41",
    "@types/jasminewd2": "2.0.2",
    "@types/selenium-webdriver": "3.0.4",
    "jasmine-core": "2.4.1",
    "jasmine-reporters": "2.2.1",
    "jasmine-spec-reporter": "4.2.1",
    "protractor": "5.1.1",
    "selenium-webdriver": "3.0.1",
    "ts-node": "1.3.0",
    "typescript": "2.2.2"
  }
} 

量角器.conf.js



const { SpecReporter } = require('jasmine-spec-reporter');

exports.config = {
  allScriptsTimeout: 11000,
  specs: [
    'e2e/**/*.e2e-spec.ts'
  ],
  capabilities: {
    browserName: 'chrome',
    chromeOptions: {
      args: (process.env.IS_CIRCLE ? ['--headless'] : [])
    }
  },
  directConnect: !process.env.IS_JENKINS,
  baseUrl: 'https://testing-angular-applications.github.io',

  // Jasmine
  framework: 'jasmine',
  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 30000,
    print: function() {}
  },
  onPrepare: ()=> {
    if (process.env.IS_JENKINS) {
      let jasmineReporters = require('jasmine-reporters');
      let junitReporter = new jasmineReporters.JUnitXmlReporter({
        savePath: 'output/',
        consolidateAll: false
      });
      jasmine.getEnv().addReporter(junitReporter);
    } else {
      let specReporter = new SpecReporter({
        spec: { displayStacktrace: true }
      });
      jasmine.getEnv().addReporter(specReporter);
    }
    require('ts-node').register({
      project: 'e2e/tsconfig.json'
    });
  }
};

脚本(在 Jenkins 上)

export IS_JENKINS=true   
npm install    
npm run webdriver-update    

结果

+ npm run webdriver-update

> chapter-11-code@1.0.0 webdriver-update /var/lib/jenkins/workspace/pjk11
> webdriver-manager update --gecko false
....
[12:03:41] I/file_manager - creating folder /var/lib/jenkins/workspace/pjk11/node_modules/protractor/node_modules/webdrive...
Xvfb stopping
Finished: SUCCESS

我遵循了角度测试书的每一步,但没有生成报告。

【问题讨论】:

    标签: angular jenkins junit protractor end-to-end


    【解决方案1】:

    已解决,我必须将 directConnect 设置为 true。

    还有一点,有时你必须手动创建目录。

    量角器.conf.js

    exports.config = {
      directConnect: true ,
      capabilities: {
        browserName: 'chrome',
        chromeOptions: {
          args: (['--headless']) 
        }
      },
      baseUrl: 'https://testing-angular-applications.github.io',
      specs: ['e2e/**/*.e2e-spec.ts'],
      onPrepare: () => {
          let jasmineReporters = require('jasmine-reporters');
          let junitReporter = new jasmineReporters.JUnitXmlReporter({
            savePath: 'output/',
            consolidateAll: false
          });
          jasmine.getEnv().addReporter(junitReporter);
        require('ts-node').register({
          project: 'e2e'
        });
    
      },
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-06
      • 2017-02-11
      • 1970-01-01
      • 2015-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-11
      相关资源
      最近更新 更多