Skip to content
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

Fail в тестировании #470

Open
pavelpower opened this issue Jun 30, 2015 · 29 comments
Open

Fail в тестировании #470

pavelpower opened this issue Jun 30, 2015 · 29 comments
Labels

Comments

@pavelpower
Copy link

Было хотели прикрутить enb-bem-specs

В общем полная беда.
Templates только на bemhtml, а мы пользуемся BH - ибо он по мнению команды понятнее.

Потом, как оказалось он тянет за собой блок jquery - которого у нас просто нет, а еще хочет i-bem.

i-bem

В общем очень странные желания для сборки тестов и не понятно почему ему нужен так jquery, и i-bem?

Итог выглядит печально:

Так может кто уже получил опыт заведения unit-тестирования без i-bem, jquery?

Видится это примерно так:

В блоках файлы *.spec.js

В которых написаны тесты в BDD стиле.

Сборка происходит в отдельную папочку, и для сборки используются только те слои переопределения кои используются для development мода.

@pavelpower
Copy link
Author

Так там и bemhtml в зависимостях нет

@pavelpower
Copy link
Author

А все таки он там есть, внутри либы enb-bemxjst

@tavriaforever
Copy link
Member

@blond

@blond
Copy link

blond commented Jul 1, 2015

@pavelpower, привет!

Извини за долгий ответ.

На данный момент все действительно так.

Про возможность использовать кастомный шаблонизатор есть задача — enb/enb-bem-specs#11.

Я пробовал её решить с помощью введения специального понятия мета-технология, чтобы можно было самому настраивать чем и как собирать нужные файлы, в том числе и шаблонизатор в составе клиенского js — enb/enb-bem-specs#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 но, кажется, что это давно уже не так, и его можно безболезненно оторвать.

@pavelpower
Copy link
Author

Салют, @blond! Спасибо за емкий ответ.

Решение по использованию шаблонизатора при помощи опции templateEngine на текущий момент выглядит хорошо.

И если есть возможность выпилить jquery - то это очень хорошо. Т.к. при формировании тестов для проверки на устройствах jquery печальный рудимент.

Вопрос в том, на сколько быстро можно внести эти изменения?
И как можно помочь, сможешь ли скоорденировать действия поставив задачи?

Это я к чему - инструмент нужен и уже сейчас, и я готов выделить ресурсы на то, чтобы допилить его. Но, так же, не хочется терять время зря. Лучше делать все сразу по плану, который у тебя, судя по всему, уже есть.

@blond
Copy link

blond commented Jul 2, 2015

Вопрос в том, на сколько быстро можно внести эти изменения?
И как можно помочь, сможешь ли скоорденировать действия поставив задачи?

Самый быстрый способ — присылать PR'ы :)

На все вопросы буду стараться быстро отвечать.

@blond
Copy link

blond commented Jul 2, 2015

Пока что завёл задачи: enb/enb-bem-specs#33 enb/enb-bem-specs#34

@pavelpower
Copy link
Author

@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>

Понять не могу найти не ищется...

@pavelpower
Copy link
Author

@blond все понял, придется еще и bem-pr править :(

@pavelpower
Copy link
Author

Хотя там уже есть BH https://github.com/narqo/bem-pr/blob/master/spec.blocks/spec/spec.bh.js

Видимо нужно просто обновить версию

@blond
Copy link

blond commented Jul 9, 2015

@pavelpower всё так. Можно, конечно, ещё больше заморочится и попробовать отказаться от bem-pr.

Мне не нравится его использование с точки зрения API. Пользователь вынужден подключать bem-pr в уровни. Логичнее, чтобы необходимый код был в enb-bem-specs.

@pavelpower
Copy link
Author

@narqo признайся, зачем ты туда BH добавил?

Не уж, то bem-spec свой уже с BH сделал?

@pavelpower
Copy link
Author

@blond, да, ты прав bem-pr тут лишний однозначно. Лучше допишу блоки внутри enb-bem-specs

@narqo
Copy link

narqo commented Jul 10, 2015

зачем ты туда BH добавил

Мне для какого-то своего проекта на bh нужно было написать тестов на блоки, чтобы удобнее было разрабатываться. Быстрее оказалось взять уровни из bem-pr, накидать сборку обычного бандла на enb и запускал тесты в браузере. Для разработки подошло, а никакого cli + ci там и не предполагалось. С тех в bem-pr есть bh-шаблоны.

@pavelpower
Copy link
Author

@narqo Спасибо!

@pavelpower
Copy link
Author

@blond ты посмотри что получается

https://github.com/pavelpower/enb-bem-specs/blob/master/lib/node-configurator.js

Я смотрю и стили исключительно через .styl используются.
Но так повелось, что у нас в проекте прижился .less

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

Может все таки немного изменим архитектуру?

@kompolom
Copy link

@pavelpower Наткнулся на те же грабли. Скажи сейчас в каком состоянии идея с поддержкой bh?
\cc @blond

@tadatuta
Copy link
Member

Скажи сейчас в каком состоянии идея с поддержкой bh?

enb-bh умеет собирать BH с мимикрией под BEMHTML, поэтому с точки зрения enb-bem-specs разницы вообще не будет.

@kompolom
Copy link

@tadatuta enb-bh умеет, но тут bemhtml подключается. Как ему можно bh скормить?

@pavelpower
Copy link
Author

@komplomon ну как как решил, запилил свой enb-bem-specs с преферансом и поэтессами

https://github.com/pavelpower/enb-bem-specs

@pavelpower
Copy link
Author

Теперь правда btmhtml не умеет а bh умеет

@kompolom
Copy link

@pavelpower Сейчас пробую запустить тесты bem-components c твоим форком enb-bem-specs. Тесты валятся ругаясь на неподключеный BEMTHML.

@pavelpower
Copy link
Author

@kompolom я делал только под BH, т.к. времени не было на реализацию вместе BH и BEMHTML.
У нас в проекте шаблоны только BH.

@pavelpower
Copy link
Author

@kompolom вся магия в файле https://github.com/pavelpower/enb-bem-specs/blob/master/lib/node-configurator.js

в моем форке отличие два:

  1. используется less
  2. используется BH

@kompolom
Copy link

@pavelpower Все так, но в bem-components есть BH шаблоны. А less я обратно переключил на stylus

@pavelpower
Copy link
Author

@kompolom тогда как решишь проблему с "Тесты валятся ругаясь на неподключеный BEMTHML." отпиши

@kompolom
Copy link

Добавлю, что теперь есть PR и есть форк, в котором можно выбрать шаблонизатор. Возможно не очень красиво, но работает.

@pavelpower
Copy link
Author

@kompolom, по ходу забыл ты раскрыть как выбирать в конфигах технологию.

  • Надо бы собратся и продумать универсальненькое решение, когда есть и то и то.

@kompolom
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

7 participants