2016-06-27 9 views
0

多くのページオブジェクトにわたって実行したいスイートのテストセットがあります。最初のものだけを実行する以外は、以下のようなテストオブジェクトを構築しようとしました。複数のBeforeを使用するための1つのNightwatchテストスイートでのネストテスト

module.exports = { 
    'test1': { 
    before: function() { console.log('before1'); }, 
    'test 1a': function() { console.log('test1a'); } 
    }, 
    'test2': { 
    before: function() { console.log('before2'); }, 
    'test 1a': function() { console.log('test2a'); } 
    } 
}; 

1つのテストスイートでこのようなネストを実行できますか?私は多くの「ページ」のオブジェクトで同じテストを実行し、動的テストスイートを構築したい

['page1', 'page2'].forEach(page => { 
    this[`Do something on ${page}`] = { 
    before: client => { 
     client.page[page].navigate(); 
    }, 
    'it does something': client => { 
     client.page[page]().expect.section('@element').visible; 
    } 
} 

:私が達成したい、実際の使用例は、このようなものです。

更新:私は本当にこの機能を持っているモカのような別のランナーを使用するのではなく、Nightwatchランナーを使い続けたいと思います。

"test_runner" : { 
"type" : "mocha", 
"options" : { 
    "ui" : "bdd", 
    "reporter" : "spec" 
} 
} 

と、あなたはこのようなあなたのテストを書くことができます:

+0

後、私はそれが良いデザインであると思ういけないこのテストランナーのことができます巣あなたが望むのテスト回参照し、ネストされたbeforesをサポートできるように、我々はテストケースを分離すべきですそれを作りなさい。私が行ったテストケースでは、前/後に多くのページオブジェクトが必要です(前提条件とテスト後のクリーンなもの)。できるだけシンプルにしてください。 –

答えて

0

は、あなたがより多くの柔軟性を持つように、この場合のモカで、他のテストランナーを使用するnightwatch.jsonの設定を変更する必要があり、これを達成するために、
describe('describe', function() { 

    before(function(cl, done) { 
    ng = ng({client: cl, screen: 'rounding'}); 
    client = cl; 

    console.log('before1') 

    done(); 
    }); 

    after(function(client, done) { 
    if (client.sessionId) { 

     client 
     .pause(1999) 
     .end(function() { 
      done(); 
     }); 
    } else { 
     done(); 
    } 
    }); 

    afterEach(function(client, done) { 
    done(); 
    }); 

    beforeEach(function(client, done) { 
    done(); 
    }); 

    describe('describe nested', function() { 
    before(function (client, done) { 
     console.log('before before!') 
     done(); 
    }); 

    it('expectation', function (client) { 
     goToRoundingPage(client); 
     client.pause(111); 
    }); 
    }); 
}); 

は、/ etc

+0

モカを避けたかったのは、もともとNightwatchの機能を失ってしまった場合は、これを元に戻しました。私はNightwatchランナーがあなたに許してくれることを望んでいたが、そうはしなかった。私は、別のランナーを使用したくないという質問を更新します。ありがとう! –

+0

いいえ問題はありません。はい、記者がmochaに渡されたすべてのアサーションを表示していないので、夜間のランナーにもロールバックすると考えています – deividsito

+0

@ matt-derrick、あなたの編集に「Updated」という単語を追加して日付を追加してください私の質問を無効にしない。 – deividsito