2015-03-29 5 views
1

Я цитирую этот example:CasperJS - Как перейти к следующему набору тестов?

casper.test.begin('Google search retrieves 10 or more results', 5, function suite(test) { 
    ... 
}); 
casper.test.begin('Casperjs.org is first ranked', 1, function suite(test) { 
    ... 
}); 

При выполнении первого набора тестов в этом примере, как я пропустить тестовый набор? Я хочу перейти к «тестовому набору« Casperjs.org - первое место »в приведенном выше примере?

Или, другими словами, есть ли способ перейти к следующему доступному блоку casper.test.begin()?

Я опробовал test.skip(), и данная документация не дает мне никаких идей о том, как достичь вышеуказанного.

+0

Вы имеете в виду пропуск следующего 'casper.test. начать блок с предыдущего? –

+0

Да. Переход к следующему доступному блоку casper.test.begin – Vatsala

+0

Помог ли мой ответ решить проблему? Есть ли проблемы с этим? –

ответ

0

Это невозможно с публичным API, который предоставляется CasperJS.

Сказав это, модуль тестера CasperJS управляет тестовыми случаями в queue. Таким образом, вы можете просто позвонить

test.queue.shift(); 

удалить следующий test.begin() блок или

test.queue.splice(1, 1); // second block after the next one 
// position -----^^ 
// amount of blocks -´ 

для удаления любого будущего блока. Обратите внимание, что это не сработает, если сами тестовые случаи не являются асинхронными. Вот почему я использовал комбинацию casper.start().then().run() в доказательстве концепции.

Предупреждение: Это не документировано и может быть изменено в будущих версиях.

проверка концепции:

casper.test.begin("test 1", function(test){ 
    casper.start().then(function(){ 
     test.assertTrue(true); 
    }).run(function(){ 
     test.done(); 
    }); 
}); 

casper.test.begin("test 2", function(test){ 
    casper.start().then(function(){ 
     //test.queue.splice(0, 1); 
     test.queue.shift(); 
     test.assertTrue(true); 
    }).run(function(){ 
     test.done(); 
    }); 
}); 

casper.test.begin("test 3 (invisible)", function(test){ 
    casper.start().then(function(){ 
     test.assertTrue(true); 
    }).run(function(){ 
     test.done(); 
    }); 
}); 

casper.test.begin("test 4 (visible)", function(test){ 
    casper.start().then(function(){ 
     test.assertTrue(true); 
    }).run(function(){ 
     test.done(); 
    }); 
}); 

Выход:

 
Test file: skip_begin_block.js 
# test 1 
PASS test 1 (NaN test) 
PASS Subject is strictly true 
# test 2 
PASS test 2 (NaN test) 
PASS Subject is strictly true 
# test 4 (visible) 
PASS test 4 (visible) (NaN test) 
PASS Subject is strictly true 
PASS 3 tests executed in 0.226s, 3 passed, 0 failed, 0 dubious, 0 skipped. 
0

Я использовал следующее решение:

casper.start(url, function() { 
    this.thenBypassIf(my_condition, 1); 
}); 
casper.then(function() { 
    // This step will be ignored if the above "my_condition" is true. 
}); 
Смежные вопросы