2017-09-21 47 views
0

當我運行量角器時,我總是收到沒有找到規格的錯誤。我試過了一個特定的單個文件,1個目錄e2e/*.js和一個整棵樹e2e/**/*.js吞噬量角器沒有與e2e測試發現規格

protractor.config.js

exports.config = { 
specs: ['e2e/**/*.js'], 
capabilities:{ 
    browserName: 'chrome', 
    debug: true 
}, 
localSeleniumStandaloneOpts:{ 
    port:8082 
} 
} 

gulpfile.js

'use strict'; 

var gulp = require('gulp'); 
var protractor = require("gulp-protractor").protractor; 


// Setting up the test task 
gulp.task('protractor', function(callback) { 
    gulp 
     .src(['e2e/**/*.js']) 
     .pipe(protractor({ 
      configFile: 'protractor.conf.js', 
      args:['-port','8095'] 
     })) 
     .on('error', function(e) { 
      console.log(e); 
     }); 

}); 

E2E/login.specs.js

'use strict'; 

describe('login to admin app', function(){ 
    beforeEach(function(){ 
     browser.get('http://localhost:3000/#!/login'); 

     it('expect to be on the login page', function(){ 
      expect(browser.findElement(by.className('login-page')).isPresent()).toBe(true); 

     }); 

     it('login to application', function(){ 
      var loginInput = browser.findElement(by.name('username')); 
      var passwordInput = browser.findElement(by.name('password')); 

      var submitButton = browser.findElement(by.tagNam('button')); 

      loginInput.sendKeys('****'); 
      passwordInput.sendKeys('****'); 

      submitButton.click(); 

      expect(browser.getCurrentUrl()).toMatch('http://localhost:3000/#!/landing'); 
     }); 

     it('check header after login', function(){ 
      var loginInput = browser.findElement(by.name('username')); 
      var passwordInput = browser.findElement(by.name('password')); 

      var submitButton = browser.findElement(by.tagNam('button')); 

      loginInput.sendKeys('*****'); 
      passwordInput.sendKeys('*****'); 

      submitButton.click(); 

      expect(browser.findElement(by.id('role'))); 
      expect(browser.findElement(by.id('username'))); 

      var languages = brower.findElement(by.className("language")); 
      expect(language[0][0].getText().toEqual("NL")); 
      expect(language[1][0].getText().toEqual("FR")); 


     }); 


    }); 
}); 

我錯過了一個配置?

回答

0

我發現它,根據AngularJS的e2e測試網站:https://docs.angularjs.org/guide/e2e-testing一切都被分成代碼塊。因此,您在beforeEach,afterEach和它之前描述函數。 我把'我的'功能放在'beforeEach'之前。

describe('login to admin app', function(){ 
    beforeEach(function(){ 
     browser.get('http://localhost:3000/#!/login'); 
    });//this line was missing 

    it('expect to be on the login page', function(){ 
     expect(browser.findElement(by.className('login-page')).isPresent()).toBe(true); 

    }); 

    it('login to application', function(){ 
     var loginInput = browser.findElement(by.name('username')); 
     var passwordInput = browser.findElement(by.name('password')); 

     var submitButton = browser.findElement(by.tagNam('button')); 

     loginInput.sendKeys('****'); 
     passwordInput.sendKeys('****'); 

     submitButton.click(); 

     expect(browser.getCurrentUrl()).toMatch('http://localhost:3000/#!/landing'); 
    }); 

    it('check header after login', function(){ 
     var loginInput = browser.findElement(by.name('username')); 
     var passwordInput = browser.findElement(by.name('password')); 

     var submitButton = browser.findElement(by.tagNam('button')); 

     loginInput.sendKeys('****'); 
    passwordInput.sendKeys('****'); 


     submitButton.click(); 

     expect(browser.findElement(by.id('role'))); 
     expect(browser.findElement(by.id('username'))); 

     var languages = brower.findElement(by.className("language")); 
     expect(language[0][0].getText().toEqual("NL")); 
     expect(language[1][0].getText().toEqual("FR")); 

    }); 
});