-
Notifications
You must be signed in to change notification settings - Fork 63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support configuration of 'sets' #9
Conversation
}); | ||
|
||
function assignTestFilesToBrowsers(testFiles, sets, browsers) { | ||
warns.warnAboutUnknownBrowsers(getFromSets('browsers', sets), browsers); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
а мы не должны тут упасть?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Это обсуждаемо, но я бы не падал (точно также, когда пользователь переопределяет браузеры через командную строку).
еще нужен тест про пересечение тестов. Типа, в первом сете указаны тесты |
expandSets(sets) | ||
]) | ||
.spread(function(testFiles, sets) { | ||
return assignTestFilesToBrowsers(testFiles, sets, browsers); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
_.partialRight
Нашел багу, пока перевожу задачу в работу. |
_ = require('lodash'), | ||
q = require('q'); | ||
|
||
exports.read = function(testPaths, browsers, sets) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Из имени файла подразумевается, что тут объявлен класс tests-reader, а на деле - утилитная функция.
Почему бы не создать класс и кормить ему в конструкторе конфиг или сеты.
Кажется что в него можно вынести также и это https://github.com/gemini-testing/hermione/pull/9/files#diff-e2ddfd95fbfadc53bebd5b9163b49840R28
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Не совсем понимаю, почему из имени файла подразумевается, что тут класс и зачем здесь нужен класс? Может суть проблемы в том, что файл нужно переименовать ? :)
f2aceac
to
a180539
Compare
Поправил. 🆙 |
6bef5da
to
5273bb7
Compare
return _this._runInBrowser(browserId, suites, filterFn); | ||
return _(tests) | ||
.map(function(files, browserId) { | ||
return _this._runInBrowser(browserId, files, filterFn); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ты бы тогда в объявлении _runInBrowser
поправил название аргумента тоже
} | ||
|
||
function filterSpecs(specs, testFiles, browsers) { | ||
validateUnknownBrowsers(browsers, getBrowsersFromSpecs(specs)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
зачем нам тут еще раз проверять наличие неправильных браузеров?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
В первом случае мы проверяем наличие неправильных браузеров, которые указаны непосредственно в опции specs
, например, если конфиг такой:
module.exports = {
browsers: {
'awesome-browser': {/* awesome-config */}
},
specs: [{files: ['hermione/awesome-test'], browsers: ['unknown-browser']}]
};
надо логировать то, что unknown-browser
– это какой-то левый браузер.
А во втором случае мы проверяем, неизвестные браузеры, которые переопределены через CLI, например, если с конфигом
module.exports = {
browsers: {
'awesome-browser': {/* awesome-config */}
},
specs: [{files: ['hermione/awesome-test'], browsers: ['awesome-browser']}]
};
мы вызываем Гермиону
$ hermione -b unknown-browser
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
И таки придумал как можно валидировать браузеры одним махом за раз ;)
ddee725
to
2eb2e88
Compare
4efbba7
to
be02573
Compare
🆙 |
{ // run tests associated with this path in all browsers | ||
files: 'tests/desktop' // which are configured in option `browsers`; | ||
}, // the alias for this case is a string 'tests/desktop' | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
можешь прям сюда дописать вариант со строкой tests/deskpad
еще нужно бы добавить тест, где спеки задаются сразу и строкой и объектом |
и еще тест на такой кейс: [
{files: ['/dir'], browsers: 'b1'},
{files: ['/dir/sub-dir'], browsers: 'b2'}
] |
🆙 please! |
🆗 |
4a4a486
to
842bde5
Compare
/cc @j0tunn @sipayRT @SwinX
Описание
Теперь в
specs
появилась возможность задавать в каких браузерах и какие тесты необходимо запускать.Было:
Стало:
Разработка
Вынес логику про получение тестов с файловой системы и их обработку в отдельных модуль
tests-reader
, который возвращает следующий формат данных:Изменил API модуля
runner
Было:
Стало:
Второй вариант позволяет конфигурировать запуск определенных тестовых файлов в определенных браузерах.