2017-09-15 14 views
0

我的配置:“进程退出,代码为0” 时,E2E测试失败的茉莉花SPEC-记者

  • 的Windows 10
  • NPM 5.3.0
  • 节点V8.4.0
  • 茉莉2.8 0.0
  • 茉莉-SPEC-记者4.2.1
  • 量角器5.1.2

以前我使用标准茉莉花记录仪进行E2E测试输出。 最近我安装了jasmine-spec-reporter,输出看起来更好。 但是现在我在TeamCity中遇到了问题。 在TeamCity中执行测试后,我一直有“程序退出代码0”,即使有些测试失败。用标准记录器我没有遇到这样的问题。 你能否建议如何解决这个问题。

TeamCity的输出:

I/launcher - Running 1 instances of WebDriver 
I/direct - Using ChromeDriver directly... 
Jasmine started 

    1 LoginComponent 
    x should set focus to the Password field after incorrect password has been entered 
     - Expected false to be truthy. 
      at Function.CustomMatchers.expectToBeFocused (D:\TeamCity\BuildAgent\work\e2eng2\ng2\e2e\matchers\custom-matchers.ts:13:6) 
      at UserContext.<anonymous> (D:\TeamCity\BuildAgent\work\e2eng2\ng2\e2e\tests\login.e2e.ts:53:18) 
      at new ManagedPromise (D:\TeamCity\BuildAgent\work\e2eng2\ng2\node_modules\selenium-webdriver\lib\promise.js:1067:7) 
      at ControlFlow.promise (D:\TeamCity\BuildAgent\work\e2eng2\ng2\node_modules\selenium-webdriver\lib\promise.js:2396:12) 
      at TaskQueue.execute_ (D:\TeamCity\BuildAgent\work\e2eng2\ng2\node_modules\selenium-webdriver\lib\promise.js:2970:14) 
      at TaskQueue.executeNext_ (D:\TeamCity\BuildAgent\work\e2eng2\ng2\node_modules\selenium-webdriver\lib\promise.js:2953:27) 
      at asyncRun (D:\TeamCity\BuildAgent\work\e2eng2\ng2\node_modules\selenium-webdriver\lib\promise.js:2860:25) 

************************************************** 
*     Failures     * 
************************************************** 

1) LoginComponent should set focus to the Password field after incorrect password has been entered 
    - Expected false to be truthy. 

Executed 1 of 9 specs (1 FAILED) (8 SKIPPED) in 10 secs. 
I/launcher - 0 instance(s) of WebDriver still running 
I/launcher - chrome #01 passed 
Process exited with code 0 

我protractor.conf.js

require('ts-node').register({ 
    compilerOptions: { 
    noEmitHelpers: false 
    } 
}); 
var helpers = require('./helpers'); 
var SpecReporter = require('jasmine-spec-reporter').SpecReporter; 

exports.config = { 
    baseUrl: 'http://localhost:8080/ng2/', 

    // use `npm run e2e` 
    specs: [ 
    helpers.root('e2e/**/*.e2e.ts') 
    ], 
    exclude: [], 

    framework: 'jasmine2', 

    allScriptsTimeout: 110000, 

    jasmineNodeOpts: { 
    defaultTimeoutInterval: 600000, 
    print: function() {} 
    }, 
    directConnect: true, 

    capabilities: { 
    'browserName': 'chrome', 
    chromeOptions: { 
     args: [ 
     '--start-maximized' 
     ] 
    } 
    }, 

    onPrepare: function() { 
    browser.ignoreSynchronization = true; 
    jasmine.getEnv().clearReporters(); 
    jasmine.getEnv().addReporter(new SpecReporter({ 
     displayStacktrace: 'all', 
     suite: { 
     displayNumber: true, 
     }, 
     spec: { 
     displayPending: true, 
     displayStacktrace: true, 
     }, 
     summary: { 
     displayDuration: true, 
     }, 
     prefixes: { 
     successful: '+ ', 
     failed: 'x ', 
     }, 
    })); 
    }, 

    useAllAngular2AppRoots: true 
}; 

回答

0

我解决了这个问题。 我的问题是我杀了所有其他记者。 要修复它,这足以删除此行

jasmine.getEnv().clearReporters();