2009-09-28 6 views
3

У меня есть maven, сконфигурированный для запуска gunit (инструмент для тестирования грамматики ANTLR) через maven-gunit-plugin. gunit, однако, имеет два разных режима. Первый режим заставляет gunit выступать в качестве интерпретатора, просматривая файл * .gunit (или * .testsuite), интерпретируя его и отображая результаты. Он может быть сконфигурирован как таковой:Как сгенерировать источники JUnit с использованием maven-gunit-plugin

<plugin> 
    <groupId>org.antlr</groupId> 
    <artifactId>maven-gunit-plugin</artifactId> 
    <version>3.1.3</version> 
    <executions> 
     <execution> 
      <id>maven-gunit-plugin</id> 
      <phase>test</phase> 
      <goals> 
       <goal>gunit</goal> 
      </goals> 
     </execution> 
    </executions> 
    </plugin> 

Второй режим заставляет gunit генерировать исходный код, которым может управлять JUnit. Как я могу приказать maven-gunit-plugin генерировать источники JUnit вместо того, чтобы выступать в качестве интерпретатора?

Несколько замечаний:

  • я могу изменить фазу тестирования для «генерирования-тест-источники», чтобы вызвать Maven плагин для запуска в нужное время.
  • я не мог найти какой-либо полезной документации по Maven-Gunit-плагин
  • Я видел, как люди используют exec-maven-plugin для запуска Gunit с определенным параметром командной строки, но я не ищу, чтобы сделать это.

РЕДАКТИРОВАТЬ/РЕШЕНИЕ:

После прочтения различных ответов, я загрузил исходный код ANTLR, который включает в себя Maven-Gunit-плагин. Плагин не поддержка поколения юнитов. Оказывается, в настоящее время единственными параметрами являются моментальный снимок кода-заглушки fire-maven-plugin и плагина exec.

ответ

3

Я нашел discussion через MNG-4039, которая проиллюстрирована с образцом gunit-maven-plugin. Я дам вам прочитать всю статью, но, по мнению автора, вы должны в конечном итоге с чем-то вроде этого:

<dependencies> 
    <dependency> 
    <groupId>org.antlr</groupId> 
    <artifactId>antlr-runtime</artifactId> 
    <version>3.1.1</version> 
    </dependency> 
    <!-- Here is the 'extra' dep --> 
    <dependency> 
    <groupId>org.antlr</groupId> 
    <artifactId>antlr</artifactId> 
    <version>3.1.1</version> 
    <!-- we try to use scope to hide it from transitivity --> 
    <scope>test</scope> <!-- or perhaps 'provided' (see later discussion) or 'import' (maven >= 2.0.9) --> 
    </dependency> 
</dependencies> 
<build> 
    <plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>gunit-maven-plugin</artifactId> 
     <version>1.0.0-SNAPSHOT</version> 
     <executions> 
     <execution> 
      <goals> 
      <goal>generate</goal> 
      </goals> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build> 

Я не проверял эту конфигурацию себя и тем самым не может подтвердить, что все работает вне из коробки. Я даже не знаю, был ли выпущен плагин в версии, отличной от SNAPSHOT. Единственное, что я могу подтвердить, это то, что действительно очень сложно найти «настоящую» документацию о .

+0

gunit-maven-plugin от org.codehaus.mojo - это не то же самое, что maven-gunit-plugin от org.antlr. Однако я увижу, если есть репозиторий/моментальный снимок, который работает, как указано выше. –

+0

@Pascal +1, @Kaleb плагины действительно разные.Codehaus mojo был написан специально как обходной путь для создания тестовых классов JUnit. Если вы решите избежать плагина exec, то этот Mojo в настоящее время выглядит наилучшим вариантом (при условии, что он работает). Хотя следует предупредить, что суффикс SNAPSHOT означает, что плагин является изменчивым и может быть изменен, вы можете захотеть взять локальную копию и переименовать/вернуть ее, чтобы избежать сбоев в изменении. –

+0

+1 с мудрыми словами Рича: использование версии SNAPSHOT может быть фатальным для стабильности вашей сборки, и я предпочитаю использовать «фиксированную» версию ради создания воспроизводимости. –

1

Существует печальная новость here

я узнал, что до сих пор нет Gunit-функциональность (будь то JUnit Test-Generation или прямой вызов из Gunit) для мавена прямо сейчас. Я уже отправил с Джимом Idle concering от состояния Gunit в
antlr3-Maven-плагин и узнал, что есть патч к старой версии The Maven-плагин в очереди.

Я думаю this обходной путь это единственный вариант.

+0

Обе упоминаемые должности старше первоначальной версии maven-gunit-plugin 1 мая 2009 г. (см. Http://www.antlr.org/pipermail/antlr-interest/2009-May/034276.html), поэтому Я все еще сомневаюсь, что у меня есть правильный ответ. Расследование больше .... –