Как использовать Intern с TypeScript и webpack?

Это вообще возможно? Когда я пытаюсь импортировать Intern в своих тестах следующим образом:

import * as registerSuite from 'intern!object'

а затем я запускаю webpack для транспиляции моих тестов * .ts, я получаю следующую ошибку:

TS2307: Не удается найти модуль «intern! Object».

Стоит ли добавить несколько наборов текста? Я новичок в TypeScript, webpack и Intern - не могу понять, что мне не хватает.


person Anatoly Ukhvanov    schedule 28.04.2017    source источник


Ответы (2)


Да, вам нужно добавить ссылку на стажировки в разделе include вашего tsconfig.json, как описано в в этом руководстве.

Но это поможет вам пройти только этап компиляции. Во время выполнения вам понадобится загрузчик, который понимает ссылки на модули, такие как intern!object, и обрабатывает их точно так, как ожидает стажер.

Я не знаю, существует ли такой загрузчик или плагин для webpack, я могу найти только одну проблему по этому поводу в intern repo, и, похоже, у него нет разрешения.

В общем, Intern 3 полагается на загрузчик dojo, который идет в комплекте с intern. Люди, которые пытаются использовать другие загрузчики, действуют сами по себе, и общего решения пока не найдено.

Для стажера 4 (которое является крупным обновлением и еще не выпущено) есть план «удалить зависимость загрузчика от Intern ', но я не знаю, будет ли что-то конкретное сделано (или даже должно ли быть сделано) для поддержки webpack.

person artem    schedule 28.04.2017

На самом деле, это возможно, как сказал Дилан Шиманн - генеральный директор SitePen, компании, создавшей стажер (если я не ошибаюсь): https://www.sitepen.com/blog/2015/03/24/testing-typescript-with-intern/#comment-3280004472

Доказательством этой концепции является проект Dojo 2, который также был разработан SitePen: https://github.com/dojo/widget-core/ Он написан на TypeScript и использует для тестирования webpack и Intern.

Но, к сожалению, пока нет документации о том, как это сделать.

Дилан также сказал, что в следующей версии Intern (v4) внутренний загрузчик Intern будет удален, и, таким образом, эта проблема исчезнет, ​​но Intern 4 в настоящее время находится в стадии предварительной бета-версии, хотя и относительно стабильной.

person Anatoly Ukhvanov    schedule 29.04.2017