2016-09-18 2 views
0

Я хотел бы сделать несколько вызовов функции test, но после первого раза вызывается jasmine.onComplete, программы завершаются. Я уже знаю, что я не могу выполнять несколько тестов параллельно, но я думал, что я могу их поставить в очередь, но если жасмин выйдет из узла, я закончил. Для этого:Предотвращение выхода onComplete в Jasmine

Есть ли способ предотвратить появление жасмина для выхода из узла?

const toCall = {} 
jasmine.onComplete(function(passed) { 
    toCall[varReporter.last.name](passed, varReporter.last.result) 
    toCall[varReporter.last.name] = null 
}); 

function test(folder, file, callback){ 
    toCall[file] = callback 
    jasmine.execute(['JS/' + folder + '/tests/' + file + '.js']) 
} 

// User saves a file, a test get triggered. 
test('prototype', 'Array', function(passed, result){ 
    console.log(util.inspect(result, { colors: true, depth: null })) 
}) 

// User saves an other file and an other test should get triggered, but can't. 

Мой тест не вызывается группами, а один за другим, на основе взаимодействия пользователей с файлами. Мне нужно запустить тест после каждого сохранения, чтобы я мог определять, когда я должен их обработать или нет.

ответ

2

Вы можете переопределить жасмин вариант выхода:

jasmine.exit =() => {}; 

Но что вызывает различные сбои. я предпочел бы запустить весь сценарий в другом процессе:

вводного test.js

const path = require('path'), 
    Jasmine = require('jasmine/lib/jasmine.js'); 

const jasmine = new Jasmine({ projectBaseDir: path.resolve() }); 
jasmine.execute(process.argv.slice(2)); 

сторожевые tests.js

const fork = require('child_process').fork; 

function test(folder, file) { 
    fork('run-test.js', ['JS/' + folder + '/tests/' + file + '.js']); 
} 

// User saves a file, a test get triggered. 
test('prototype', 'Array') 
// User saves an other file and an other test should get triggered, but can't. 
+0

Это на самом деле то, что я в конечном итоге с ... В основном по той причине, что я могу запустить несколько тестов (даже параллельно, не то, что это было бы необходимо, но все же приятно иметь) – Akxe

+1

Для уточнения, вы должны добавить закрытие e слушателя к вилке, так что люди могут увидеть, как это сделать правильно – Akxe

Смежные вопросы