Запуск JUnit в Eclipse против терминала / командной строки - PullRequest
0 голосов
/ 13 октября 2019

Объяснение -

  • У меня есть файл Java (Service.java), содержащий несколько методов (higher(int,int):int и isPerfectSquare(int):boolean).
  • Я создаю тест для этого класса в ServiceTest.java, содержащий testHigher() и testIsPerfectSquare().
  • Если есть ошибка компиляции в одном из двух методов (в higher вмой пример), Eclipse все еще запускает тесты, показывая один проход и одну ошибку.
  • Однако компиляция в терминале с использованием следующих результатов приводит к ошибке.

     javac -cp out:junit-platform-console-standalone-1.5.2.jar Service.java ServiceTest.java
    
  • Это означает, что я не могу выполнить в терминале, используя:

     java -jar junit-platform-console-standalone-1.5.2.jar -class-path . --scan-class-path
    

Вопрос -

Как можно продолжить выполнение теста даже с ошибками компиляции в некоторыхметоды из тестируемого класса (как в Eclipse). Любая помощь будет оценена. Спасибо!

Соответствующий код ниже -

public class Service {
    public static int higher(int a, int b) { //has compilation error
        if(a > b) {
            return a; 
        }
        if(b > a) {
            return b;
        }
    }

    public static boolean isPerfectSquare(int n) {
        return Math.pow((int)Math.sqrt(n), 2) == n;
    }
}
import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

class ServiceTest {

    @Test
    void testHigher() {
        assertEquals(5, Service.higher(3, 5));
        assertEquals(6, Service.higher(6, 4));
        assertEquals(7, Service.higher(7, 7));
    }

    @Test
    void testIsPerfectSquare() {
        assertTrue(Service.isPerfectSquare(64));
        assertFalse(Service.isPerfectSquare(63));
    }
}
...