1
私は最近、私は私のテストを実行したときに、私のit
ブロックは取得しない、 http://engineering.wingify.com/posts/angularapp-e2e-testing-with-protractor/分度器は
しかし、このポスト下記の分度器でページオブジェクトモデルを使用することを試みた「それはブロックを実行せずに私のテストに合格します実行される。以下は
私のログインページオブジェクトの下
/*File Name : loginPage.js*/
var loginPage = function() {
'use strict';
this.email = element(by.id('Email'));
this.next = element(by.id('next'));
this.pwd = element(by.id('Passwd'));
this.signin = element(by.id('signIn'));
this.submitButton = element(by.css('.login-form button[type="submit"]'));
//this.classitem = element(by.css('hap-class-item'));
//this.googlesigninbtn = element(by.css('[ng-click="login_google()"]'));
//******************** functions *******************
this.enterEmail = function (email) {
browser.ignoreSynchronization = true;
//browser.sleep(2000);
this.email.clear();
this.email.sendKeys(email);
this.next.click();
browser.sleep(2000);
};
this.enterPassword = function (pwd) {
browser.ignoreSynchronization = true;
this.pwd.clear();
browser.sleep(2000);
this.pwd.sendKeys(pwd);
this.signin.click();
browser.sleep(2000);
};
};
module.exports = {
log: new loginPage()
};
は私ログアウトページオブジェクトの下
/*File Name : logoutPage.js*/
var logoutPage = function() {
'use strict';
\t \t this.logoutcaret = element(by.css('[ng-if="api.userNav.items"]'));
\t this.logoutbtn = element(by.css('[ng-click="openModal()"]'));
\t this.googlelogout = element(by.css('[ng-click="logout()"]'));
var EC1 = protractor.ExpectedConditions;
//******************** functions *******************
this.logoutfn = function() {
\t browser.wait(EC1.visibilityOf(this.logoutcaret),15000);
\t this.logoutcaret.click();
\t this.logoutbtn.click();
\t this.googlelogout.click();
};
};
module.exports = {
log: new logoutPage()
};
がために作成したログインとログアウト機能を持っている私の基本ページであるです各試験に使用される。
/*File Name : LoginOut.js*/
//var switchwin = require('../commons/selectwindow.js');
var loginPage = require('../objects/loginpage.js'),
eml = 'abc',
password = 'pwd';
exports.login = function() {
//browser.driver.manage().deleteAllCookies();
browser.driver.get('https://accounts.google.com/ServiceLogin');
loginPage.log.enterEmail(eml);
loginPage.log.enterPassword(password);
browser.driver.get('URL');
};
var logoutPage = require('../objects/logoutpage.js');
exports.logout = function() {
logoutPage.log.logoutfn();
};
最後に、私のテストは常に通りますが、単にログインしてログアウトするだけですが、 'it'ブロックでは何も実行されません。
/*File Name : tests*/
'use strict';
describe('I want to test Smartshare', function() {
var loginMod = require('../commons/loginout.js');
//login before each test
beforeEach(function() {
loginMod.login();
});
var loginMod = require('../commons/loginout.js');
//logout after each test
afterEach(function() {
loginMod.logout();
});
var smartshareMod = require('../objects/smartsharepage.js');
//copy doc test
it('should test sharing a document', function() {
\t exports.copydoc = function() {
\t \t smartshareMod.log.copyDoc().then(function(){
\t \t \t console.log('document copied');
\t \t });
\t };
});
});
it()
ブロック内の任意の関数を呼び出すことはありませんので、ヘルプなし
Protractor passes tests without running the testsと
https://github.com/angular/angular-cli/issues/2072
node.js version - v6.4.0
protractor version - 4.0.11
Running on MacOS Sierra
webdriver-manager updated to latest
おかげでトリックをした:一度、再利用、テスト仕様の一番上にそれらを必要とする - トンあなたのページは、あなたがそれらを使用するたびに、オブジェクトの「必要」しなければなりません。 –