maven 1 терпит неудачу при выполнении теста - PullRequest
3 голосов
/ 30 августа 2011

Я изменил версию junit с 3.8 на 4.4 в приложении, использующем maven 1. Для этого я изменяю project.xml, теперь он выглядит так:

...
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.4</version>
      <properties>
<scope>test</scope>
  </properties>
</dependency>
...

Я добавил несколько тестов с использованием аннотаций, таких как @Test или @Before, и эти тесты отлично работают в eclipse. Когда я пытаюсь запустить «maven test» в консоли, я получаю следующий вывод:

    test:compile:
[junit] Running com.myapp.Class1Test
[junit] Tests run: 6, Failures: 0, Errors: 0, Time elapsed: 0.721 sec
[junit] Running com.myapp.Class2Test
[junit] Tests run: 7, Failures: 0, Errors: 0, Time elapsed: 1.16 sec
[junit] Running com.myapp.Class3Test
[junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0.538 sec
[junit] [ERROR] Test com.myapp.Class3Test FAILED
[junit] Running com.myapp.Class4Test
[junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0.565 sec
[junit] [ERROR] Test com.myapp.Class4Test FAILED
[junit] Running com.myapp.Class5Test
[junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0.565 sec
[junit] [ERROR] Test com.myapp.Class5Test FAILED
[junit] Running com.myapp.Class6Test
[junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0.691 sec
[junit] [ERROR] Test com.myapp.Class6Test FAILED
[junit] Running com.myapp.Class7Test
[junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0.549 sec
[junit] [ERROR] Test com.myapp.Class7Test FAILED
[junit] Running com.myapp.Class8Test
[junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0.708 sec
[junit] [ERROR] Test com.myapp.Class8Test FAILED
[junit] Running com.myapp.Class9Test
[junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0.643 sec
[junit] [ERROR] Test com.myapp.Class9Test FAILED
[junit] Running com.myapp.Class10Test
[junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0.668 sec
[junit] [ERROR] Test com.myapp.Class10Test FAILED
[junit] Running com.myapp.Class11Test
[junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0.644 sec
[junit] [ERROR] Test com.myapp.Class11Test FAILED
[echo]
       ==========================================================
         WARNING:  There were test failures!
       ==========================================================

Тестовые файлы, которые не проходят, содержат более одного теста. Мэйвен просто не видит их. Также, когда я использую maven в отладке, я вижу, что он загружает неявный junit 3.8.

Вот почему я думаю, что каким-то образом использовался старый джунитовый кувшин. Я просто не знаю, где и как это обнаружить.

Любая помощь, совет, луч света будет оценен.

Ответы [ 5 ]

4 голосов
/ 30 августа 2011

Попробуйте выяснить, почему его загружается джунит 3.8. Вы можете использовать mvn dependency: tree, а затем на основе результата исключить его специально.

3 голосов
/ 30 августа 2011

Мне не известно об элементе <properties> с областью действия, имеющей какое-либо значение в том виде, в каком вы его использовали, если только это не понадобилось другому плагину.Похоже, вы пытались втиснуть концепцию Maven 2 в Maven 1.

Вы можете попробовать установить свойство maven.test.classpath, чтобы помочь ему подобрать JUnit JAR.Я не даю никаких гарантий относительно этой работы - JUnit 4 никогда не поддерживался в Maven 1.x, а Maven 1.x активно не разрабатывался более 4 лет.Как вы увидите, все остальные респонденты отвечают только на вопросы, относящиеся только к Maven 2. Вам настоятельно рекомендуется обновить сборку.

2 голосов
/ 30 августа 2011

попробуйте использовать последнюю версию (хотя она сама по себе, вероятно, не решит вашу проблему здесь), также используйте

mvn -X clean test

и включите stactrace в исходное сообщение.

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.8.2</version>
  <scope>test</scope>
</dependency>

Вы также можете посмотреть на результат, полученный следующим образом, и исключить джунит 3,8 банка

mvn dependency:tree
1 голос
/ 30 августа 2011

Попробуйте:

Add an adapter in your tests :
    /**
     * @return instance of this as Junit test case
     */
    public static junit.framework.Test suite ()
    {
        return new JUnit4TestAdapter(IntTestSpringCoherency.class);
    }

Взято из: http://maven.40175.n5.nabble.com/Can-maven-1-x-run-Junit-4-tests-td92773.html

0 голосов
/ 30 августа 2011

Возможное решение / обходной путь:

public void AClassUnitTest {
public static junit.framework.Test suite ()
    {
        return new JUnit4TestAdapter(AClassUnitTest.class);
    } 


    @Test
    public method_income_expected(){
    ...
    }

}

Спасибо! * * 1004

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...