Было хотели прикрутить enb-bem-specs
В общем полная беда. Templates только на bemhtml, а мы пользуемся BH - ибо он по мнению команды понятнее.
Потом, как оказалось он тянет за собой блок jquery
- которого у нас просто нет, а еще хочет i-bem
.
В общем очень странные желания для сборки тестов и не понятно почему ему нужен так jquery
, и i-bem
?
Итог выглядит печально:
Так может кто уже получил опыт заведения unit-тестирования без i-bem, jquery?
Видится это примерно так:
В блоках файлы *.spec.js
В которых написаны тесты в BDD стиле.
Сборка происходит в отдельную папочку, и для сборки используются только те слои переопределения кои используются для development мода.
Так там и bemhtml в зависимостях нет
А все таки он там есть, внутри либы enb-bemxjst
@blond
@pavelpower, привет!
Извини за долгий ответ.
На данный момент все действительно так.
Про возможность использовать кастомный шаблонизатор есть задача — https://github.com/enb-bem/enb-bem-specs/issues/11.
Я пробовал её решить с помощью введения специального понятия мета-технология, чтобы можно было самому настраивать чем и как собирать нужные файлы, в том числе и шаблонизатор в составе клиенского js — https://github.com/enb-bem/enb-bem-specs/pull/13. Но, кажется, такое решение оказалось сложным для использования.
Есть мысли, что можно сделать опцию, например,
templateEngine: 'BH'
, которой просто указывать какой шаблонизатор использоватьBEMHTML
илиBH
. Такое решение устроит?По поводу
i-bem.js
, кажется, что он тянется как раз из-за BEMHTML и если поддержать сборку с помощью BH то он приезжать не будет.Блок
jquery
требуется в блокеspeс
: https://github.com/narqo/bem-pr/blob/master/spec.blocks/spec/spec.deps.js#L19. Раньше это было нужно для корректной работыmocha
но, кажется, что это давно уже не так, и его можно безболезненно оторвать.Салют, @blond! Спасибо за емкий ответ.
Решение по использованию шаблонизатора при помощи опции
templateEngine
на текущий момент выглядит хорошо.И если есть возможность выпилить jquery - то это очень хорошо. Т.к. при формировании тестов для проверки на устройствах jquery печальный рудимент.
Вопрос в том, на сколько быстро можно внести эти изменения? И как можно помочь, сможешь ли скоорденировать действия поставив задачи?
Это я к чему - инструмент нужен и уже сейчас, и я готов выделить ресурсы на то, чтобы допилить его. Но, так же, не хочется терять время зря. Лучше делать все сразу по плану, который у тебя, судя по всему, уже есть.
Самый быстрый способ — присылать PR'ы :)
На все вопросы буду стараться быстро отвечать.
Пока что завёл задачи: https://github.com/enb-bem/enb-bem-specs/issues/33 https://github.com/enb-bem/enb-bem-specs/issues/34
@blond Ты только скажи откуда берется
<script class="spec-runner">(function() {var global = this;typeof modules === "object"? modules.require(["jquery", "mocha", "spec"], function($, mocha) { init($, mocha); }) : init(global.jQuery, global.mocha);function init($, mocha) { global.mochaPhantomJS? global.mochaPhantomJS.run(done) : mocha.run(done); function done() { $("#mocha").show() }}}());</script>
Понять не могу найти не ищется...
@blond все понял, придется еще и bem-pr править :(
Хотя там уже есть BH https://github.com/narqo/bem-pr/blob/master/spec.blocks/spec/spec.bh.js
Видимо нужно просто обновить версию
@pavelpower всё так. Можно, конечно, ещё больше заморочится и попробовать отказаться от
bem-pr
.Мне не нравится его использование с точки зрения API. Пользователь вынужден подключать
bem-pr
в уровни. Логичнее, чтобы необходимый код был вenb-bem-specs
.@narqo признайся, зачем ты туда BH добавил?
Не уж, то bem-spec свой уже с BH сделал?
@blond, да, ты прав bem-pr тут лишний однозначно. Лучше допишу блоки внутри
enb-bem-specs
Мне для какого-то своего проекта на bh нужно было написать тестов на блоки, чтобы удобнее было разрабатываться. Быстрее оказалось взять уровни из bem-pr, накидать сборку обычного бандла на enb и запускал тесты в браузере. Для разработки подошло, а никакого cli + ci там и не предполагалось. С тех в bem-pr есть bh-шаблоны.
@narqo Спасибо!
@blond ты посмотри что получается
https://github.com/pavelpower/enb-bem-specs/blob/master/lib/node-configurator.js
Я смотрю и стили исключительно через
.styl
используются. Но так повелось, что у нас в проекте прижился.less
И похоже, что нужно менять подход к данной либе, не очень все таки использовать настройки. Как-то плагинами надо, что-ли.
Может все таки немного изменим архитектуру?
@pavelpower Наткнулся на те же грабли. Скажи сейчас в каком состоянии идея с поддержкой bh? \cc @blond
enb-bh
умеет собиратьBH
с мимикрией подBEMHTML
, поэтому с точки зренияenb-bem-specs
разницы вообще не будет.@tadatuta
enb-bh
умеет, но тут bemhtml подключается. Как ему можно bh скормить?@komplomon ну как как решил, запилил свой enb-bem-specs с преферансом и поэтессами
https://github.com/pavelpower/enb-bem-specs
Теперь правда btmhtml не умеет а bh умеет
@pavelpower Сейчас пробую запустить тесты bem-components c твоим форком enb-bem-specs. Тесты валятся ругаясь на неподключеный BEMTHML.
@kompolom я делал только под BH, т.к. времени не было на реализацию вместе BH и BEMHTML. У нас в проекте шаблоны только BH.
@kompolom вся магия в файле https://github.com/pavelpower/enb-bem-specs/blob/master/lib/node-configurator.js
в моем форке отличие два:
@pavelpower Все так, но в bem-components есть BH шаблоны. А less я обратно переключил на stylus
@kompolom тогда как решишь проблему с "Тесты валятся ругаясь на неподключеный BEMTHML." отпиши
Добавлю, что теперь есть PR и есть форк, в котором можно выбрать шаблонизатор. Возможно не очень красиво, но работает.
@kompolom, по ходу забыл ты раскрыть как выбирать в конфигах технологию.
@pavelpower там в examples есть пример https://github.com/kompolom/enb-bem-specs/blob/33%40add-template-engine-option/examples/silly/.enb/make.js