2017-07-25 143 views
1

我試圖通過量角器/ Selenium在彈出的角4項目上運行E2E測試。角4(彈出)和E2E測試(量角器/硒配置)

package.json

... 
"scripts": { 
    "pree2e": "webdriver-manager update --standalone false --gecko false --quiet node", 
    "e2e": "protractor ./protractor.conf.js" 
} 
... 

protractor.conf

exports.config = { 
    seleniumAddress: 'http://localhost:4444/wd/hub', 
    directConnect: true, 
    allScriptsTimeout: 60000, 
    getPageTimeout: 60000, 
    specs: [ 
     './src/e2e/**/*.e2e-test.ts' 
    ], 
    capabilities: { 
     'browserName': 'chrome' 
    }, 
    jasmineNodeOpts: { 
     showColors: true, 
     defaultTimeoutInterval: 60000 
    }, 
    onPrepare() { 
     require('ts-node').register({ 
      project: 'tsconfig.e2e.json' 
     }); 

     jasmine.getEnv().addReporter(new SpecReporter({ 
      spec: { 
       displayStacktrace: true 
      } 
     })); 

     browser.driver.manage().timeouts().setScriptTimeout(60000); 
    } 
}; 

當運行npm run e2e瀏覽器啓動時,但它試圖打開data:text/html,<html></html>每一個測試,然後迅速關閉。我錯過了什麼?我嘗試將baseUrl添加到我的protractor.conf中,但它沒有幫助,因爲它似乎並沒有運行。

+0

你忘了指定你的應用程序'baseUrl'嗎? –

+0

它在哪裏運行? :) – alexcodesalot

+0

你必須在'conf'文件中指定。看到這個conf文件爲例 - https://github.com/igniteram/protractor-cucumber-typescript/blob/master/config/config.ts#L9 –

回答

0

我終於找到了解決我的問題。我不知何故需要運行ng serve,現在可以,因爲該項目被推出,通過npm run start運行。這是特拉維斯CI部署(我強烈推薦),故見before_script

before_script: 
    - nohup npm run start & 
script: 
    - npm run build -aot --target=production --environment=prod 
    - npm run test 
    - npm run e2e 

最終package.json(仍然ng eject後默認):

... 
"scripts": { 
    "ng": "ng", 
    "lint": "ng lint", 
    "build": "webpack", 
    "start": "webpack-dev-server --port=4200", 
    "test": "karma start ./karma.conf.js", 
    "pree2e": "webdriver-manager update --standalone false --gecko false --quiet", 
    "e2e": "protractor ./protractor.conf.js", 
    "postinstall": "npm run build -aot --target=production --environment=prod" 
} 
... 

最終protractor.conf(仍然ng eject後默認):

exports.config = { 
    allScriptsTimeout: 11000, 
    specs: [ 
     './src/e2e/**/*.e2e-test.ts' 
    ], 
    capabilities: { 
     'browserName': 'chrome' 
    }, 
    directConnect: true, 
    baseUrl: 'http://localhost:4200/', 
    framework: 'jasmine', 
    jasmineNodeOpts: { 
     showColors: true, 
     defaultTimeoutInterval: 30000, 
     print: function() {} 
    }, 
    beforeLaunch: function() { 
     require('ts-node').register({ 
      project: 'tsconfig.e2e.json' 
     }); 
    }, 
    onPrepare() { 
     jasmine.getEnv().addReporter(new SpecReporter({ 
      spec: { 
       displayStacktrace: true 
      } 
     })); 
    } 
}; 

以下是當您發生什麼情況時ng ejecthttps://github.com/angular/angular-cli/issues/6171

兩天半的時間,謝謝Angular CLI團隊爲這個bug,真的,謝謝。

相關問題