Зачем получать исключение AssumpViolatedException? Junit 4.8.2 - PullRequest
0 голосов
/ 26 марта 2012

Я пытаюсь сделать тесты Junit. Я хочу начать их, попросив метод в системе CMS. Потому что я тестирую плагины. Проблема в том, что я получаю это исключение, и я не знаю почему. Нах, я обнаружил, что проблема может заключаться в том, что я использую JUnit 4.8.2, но когда я запускаю тест в Eclipse, все работало нормально. Поэтому я не могу найти решение. Вот ошибка:

 org.apache.velocity.exception.MethodInvocationException: Invocation of method 
'getTest' in class nl.company.cms.three.viewtool.LoginViewTool threw exception 
java.lang.NoClassDefFoundError: org/junit/internal/AssumptionViolatedException at 
working/2a90929a-3fbf-43e9-9961-4a40279ec907_5c6e0bff-cfeb-44c6-86e2-
a0ba40e7b66c.field[line 1, column 15] 

Вот код моего класса и тестового класса: Класс, который вызывает для запуска теста:

    public String getTest(){
    Result r = org.junit.runner.JUnitCore.runClasses(MyTestClass.class);
    if(r.getRunCount() > 0){
    String s = "Failcount = " + r.getFailureCount() + " // " + 
    r.getRunCount() + " in " + r.getRunTime() + " ms";
    System.out.println(r.getFailures().get(0).getTrace());
    System.out.println("Runcount: "+r.getRunCount());
    System.out.println("Runtime: "+r.getRunTime());
    System.out.println("Ignore count: "+r.getIgnoreCount());
    System.out.println("Failure count: "+ r.getFailureCount());
    return s;
}
else{
    return "Something ging kei verkeerd jonge!";
}
}

Тестовый класс:

public class MyTestClass {

@Test
public void testMultiply() {
    CustomLoginViewTool tester = new CustomLoginViewTool();
     assertEquals("Result", 40, tester.multiply(10, 5));
}

@Test
public void testMultiply1() {
    CustomLoginViewTool tester = new CustomLoginViewTool();
     assertEquals("Result", 50, tester.multiply(10, 5));
}

@Test
public void testMultiply2() {
    CustomLoginViewTool tester = new CustomLoginViewTool();
     assertEquals("Result", "ASDF", tester.multiply(10, 5));
}

@Test
public void testMultiply3() {
    CustomLoginViewTool tester = new CustomLoginViewTool();
     assertEquals("Result", 50, tester.multiply(10, 5));
}

@Test
public void testMultiply4() {
    CustomLoginViewTool tester = new CustomLoginViewTool();
     assertEquals("Result", 47, tester.multiply(10, 5));
}

@Test
public void testMultiply5() {
    CustomLoginViewTool tester = new CustomLoginViewTool();
     assertEquals("Result", 50, tester.multiply(10, 5));
}
}

Ответы [ 3 ]

2 голосов
/ 26 марта 2012

Допущения - это исключения, которые JUnit будет ловить, но которые не пройдут тест. Это вопросы типа «этот тест имеет смысл только». Например, нет смысла проваливать тесты Windows-path в системе Linux - они не могут быть успешными, и их сбой приведет к ошибке, которую невозможно исправить, не отключив тесты.

Что я нахожу странным, так это Velocity и JUnit в одном сообщении об ошибке. Почему Velocity работает с JUnit?

Ошибка означает, что путь к классу настроен неправильно. Поэтому вам нужно посмотреть на загрузчик классов, который используется для загрузки класса, который содержит метод getTest()

1 голос
/ 27 марта 2012

Проблема заключалась в том, что система CMS использует JUnit 3.8.2, а плагину требуется JUnit 4.8.2. Это вызвало ошибку, потому что Java использует новейшую версию JUnit, и у нее нет API-интерфейса AssuranceViolatedException.

0 голосов
/ 27 мая 2017

Этот класс реализует класс hamcrest, поэтому убедитесь, что на пути к классу у вас есть jar-ядро hamcrest.

...