CasperJS, параллельный просмотр с рамкой тестирования

Вопрос: Хотелось бы узнать, можно ли делать параллельный просмотрсо структурой тестирования в одном файле сценариято же самое с модулем тестирования и командой тестирования casperjs.

Я видел, как некоторые люди создавали два экземпляра Каспера:CasperJS одновременные запросы а такжеhttps://groups.google.com/forum/#!topic/casperjs/Scx4Cjqp7hE , но, как сказано в документе, мы не можем создать новый экземпляр Casper в тестовом скрипте.

Поэтому я попытался сделать что-то похожее - простой пример - со скриптом тестирования Каспера (просто скопируйте и выполните это, это будет работать):

var url1 = "http://casperjs.readthedocs.org/en/latest/testing.html"
    ,url2 = "http://casperjs.readthedocs.org/en/latest/testing.html"
    ;

var casperActions = {
    process1: function () {
        casper.test.begin('\n********* First processus with our test suite : ***********\n', function suite(test) {
            "use strict";
            casper.start()
            .thenOpen(url1,function(){
                this.echo("1","INFO");
            });
            casper.wait(10000,function(){
                casper.test.comment("If parallel, it won't be printed before comment of the second processus !");
            })
            .run(function() {
                this.test.comment('----------------------- First processus over ------------------------\n');
                test.done();
            });
        });
    },
  process2: function () {
        casper.test.begin('\n********* Second processus with our test suite : ***********\n', function suite(test) {
            "use strict";
            casper.start()
            .thenOpen(url1,function(){
                this.echo("2","INFO");
            });
            casper.test.comment("Hi, if parallel, i'm first !");
            casper.run(function() {
                this.test.comment('----------------------- Second processus over ------------------------\n');
                test.done();
            });
        });
    }
};

['process1', 'process2'].forEach(function(href) {
    casperActions[href]();
});

Но это не параллельно, они выполняются один за другим. В настоящее время я делаю параллельный просмотр, но с узлом, а не в самом файле, используя дочерний процесс. Поэтому, если вы разделите мой предыдущий код на два файла -proc1.js, proc2.js- (только два сценария-> casper.test.begin {...}) и запустите приведенный ниже код через узел, что-то вроде этого будет работать с Linux, я должен искать эквивалентный синтаксис для windows:

var exec = require("child_process").exec
;

exec('casperjs test proc1.js',function(err,stdout,stderr){
console.log('stdout: ' + stdout);
console.log('endprocess1');
});
exec('casperjs test proc2.js',function(err,stdout,stderr){
console.log('stdout: ' + stdout);
console.log('endprocess2');
});

Моя проблема в том, что перенаправления и открытые новые URL-адреса довольно длинные, поэтому я хочу, чтобы некоторые из них выполнялись параллельно. Я мог бы создавать файлы XXX и запускать их параллельно с узлом, но я не хочу, чтобы файлы XXX имели 5 строк кода, поэтому, если кому-то удастся (если это возможно), открыть URL-адреса параллельно в одном и том же файле тестирования без узла (так что без нескольких процессов), пожалуйста, научите меня!

И я хотел бы знать, в чем разница между инструкциями по цепочке, или каждый раз повторно использовать объект casper:

так между этим:

casper.test.begin('\n********* First processus with our test suite : ***********\n', function suite(test) {
    "use strict";
    casper.start()
    .thenOpen(url1,function(){
        this.echo("1","INFO");
    })
    .wait(10000,function(){
        casper.test.comment("If parallel, it won't be print before comment of the second processus !");
    })
    .run(function() {
        this.test.comment('----------------------- First processus over ------------------------\n');
        test.done();
    });
});

И это:

casper.test.begin('\n********* First processus with our test suite : ***********\n', function suite(test) {
    "use strict";
    casper.start();
    casper.thenOpen(url1,function(){
        this.echo("1","INFO");
    });
    casper.wait(10000,function(){
        casper.test.comment("If parallel, it won't be print before comment of the second processus !");
    })
    casper.run(function() {
        this.test.comment('----------------------- First processus over ------------------------\n');
        test.done();
    });
});

Связывая мои инструкции, заблокирует ли он всю цепочку, если один из моих шагов будет неудачным (обещание отклонено) вместо выполнения каждого шага Каспера?

Так что было бы лучше объединить инструкции с зависимыми шагами [как thenClick (селектор)] и использовать объект casper с независимыми шагами (как открыть новый URL), не так ли?

Редактировать: я пытался, и если шаг провалился, цепочкой или нет, он остановит все последующие шаги, поэтому я не вижу разницы, используя цепные шаги или нет ...

Ответы на вопрос(2)

Ваш ответ на вопрос