Я использую соединение grunt ("grunt-contrib-connect": "0.11.2"
) в сочетании с жасмином grunt ("grunt-contrib-jasmine": "^1.1.0"
). Конфигурация подключения ранее жестко кодировала номер порта, и конфигурация jasmine также была настроена на использование того же номера порта в параметре конфигурации host
.
Теперь я хочу включить параметр useAvailablePort
в подключении, чтобы решить проблему с параллельными сборками, использующими один и тот же порт. Однако я изо всех сил пытаюсь понять, как правильно сообщить номер порта от подключения к Жасмин?
Вот соответствующие разделы моего блока конфигурации grunt init:
connect: {
test: {
options: {
keepalive: false,
hostname: 'localhost',
port: 1234,
base: ['.']
}
}
}
jasmine: {
js: {
src: ...,
options: {
keepRunner: true,
summary: true,
host: 'http://localhost:1234/',
specs: 'src/test/js/**/*Spec.js',
vendor: ...
}
}
}
У меня есть создал тестовое задание grunt, используя:
grunt.registerTask('test', ['connect', 'jasmine:js']);
Итак, каков наилучший способ захвата порта из connect
и установки хоста в jasmine:js
?
Я был пытаясь изменить тестовое задание следующим образом, но без радости (также не уверен, что это будет правильным способом):
grunt.registerTask('test', 'Run jasmine unit tests', function () {
grunt.event.once('connect.test.listening', function(host, port) {
var jasmineHost = 'http://' + host + ':' + port;
grunt.log.writeln('Running jasmine tests from: ' + jasmineHost );
grunt.config.set('jasmine:js:options:host', jasmineHost );
grunt.task.run('jasmine:js');
});
grunt.task.run('connect:test');
});