私は実際に私の角型アプリケーションの単体テストを終了しています。私は現在、分度器とジャスミンを使ってE2Eテストを行っています。残念ながら、私は以下の問題を抱えています:道具がdone()メソッドなしでテストに合格しない
私はhttp://ramonvictor.github.io/protractor/slides/#/1のようなオンラインのリサーチをオンラインで行いました。私は明らかにテストを開始するための "done"コールバックの使用は見かけません。
この最初のテストでは、createUserページに進み、ユーザータブの属性がアクティブに設定されていることを確認します。私が使ってはならないdoneメソッドを使用する場合にのみ渡されます。
'use strict';
var UserCreate = require('./page-objects/userCreate.pageObjects');
describe('on init', function() {
beforeEach(function() {
var rootUrl = browser.baseUrl + '/#/users/create';
browser.driver.get(rootUrl);
});
it('should set the user tab active', function(done) { // DONE callback
UserCreate.tabs.getAttribute('class').then(function(value) {
expect(value).toEqual('active');
done(); // calling callback
});
});
});
I)が(完了を使用せずに同じテストを繰り返した場合、テストはしても、この時間ならば、私はにそれをしたいに失敗渡します。
'use strict';
var UserCreate = require('./page-objects/userCreate.pageObjects');
describe('on init', function() {
beforeEach(function() {
var rootUrl = browser.baseUrl + '/#/users/create';
browser.driver.get(rootUrl);
});
it('should set the user tab active', function() {
UserCreate.tabs.getAttribute('class').then(function(value) {
expect(value).toEqual('activeWRONG');
});
});
});
私が行ったコールバックを使用する場合にのみ失敗します。私はどこにでも行っての使用とのより深いテストで非同期に問題が発生しますので、私は私のテストを続行する前にこの問題を解決したい
/* conf.js */
' use strict';
exports.config = {
rootElement: '#myApp',
directConnect: true,
seleniumAddress: 'http://localhost:4444/wd/hub',
capabilities: {
browserName: 'chrome',
shardTestFiles: true,
maxInstances: 1
},
framework: 'jasmine',
// specs: ['./*.spec.js'],
baseUrl: 'http://localhost:9001',
defaultTimeoutInterval: 0000,
jasmineNodeOpts: {
showColors: true,
},
suites: {
wip: './userCreate.spec.js',
all: './*spec.js'
},
onPrepare: function() {
browser.driver.get('http://localhost:9001/#/');
element(by.id('ld-link-login')).click();
browser.sleep(500);
element(by.model('username')).sendKeys('test');
element(by.model('password')).sendKeys('test');
element(by.id('nv-login-submit')).click();
return browser.driver.wait(function() {
return browser.driver.getCurrentUrl().then(function(url) {
return /dashboard/.test(url);
});
}, 10000);
}
};
:ここ
は私の設定ファイルです。
ありがとうございました。
編集:
分度器のバージョンは:./node_modules/.bin/protractorの--versionを与えバージョン3.2.2
userCreate.pageObjects:
'use strict';
module.exports = {
tabs: element(by.id('cc-tab-user'))
};
Jasmine2にアップグレードできますか? – Gunderson
私はjasmine.versionでチェックアウトし、ジャスミンのバージョンは2.4.1です。 –
あなたの設定は 'jasmine'と言って、' framework: 'jasmine2'、 'に変更し、それが役立つかどうか確認してください。 – Gunderson