Я пытаюсь использовать JUnit в make-файле, но я не могу заставить его работать.javac junit дает «ошибка: пакет org.junit не существует»
Моя структура папок выглядит следующим образом (Makefile в MyProject):
myProject
|--bin
|--main
|--org
|--myPackage
|--test
|--org
| |--myPackage
|
|--lib
где/главный содержит основные файлы,/тест содержит тестовые файлы и/Библиотека содержит hamcrest-core-1.3.jar
и junit-4.12.jar
Мой Makefile является следующим образом:
JAVAC = javac
JVM = java
JAVADOC = javadoc
MKBIN = mkdir -p bin
JAVAC_FLAGS = -g -d bin/
JAVAC_CP = -cp
SRC = main/
SRCTEST = test/
LIB = lib/*.jar
PACKAGE = org/myPackage/*.java
TARGET = bin
MAIN = org.myPackage.Main
.SUFFIXES : .class .java
all:
$(MKBIN) | $(JAVAC) $(JAVAC_FLAGS) $(SRC)$(PACKAGE)
test:
$(MKBIN) | $(JAVAC) $(JAVAC_CP) $(LIB) $(SRCTEST)$(PACKAGE)
clean:
rm -rf $(TARGET)
run:
$(JVM) $(JAVAC_CP) $(TARGET) $(MAIN)
.PHONY: all test clean
Когда я бегу make test
я получаю следующее:
~/myProject | 18:07:29>make test
mkdir -p bin | javac -cp lib/*.jar test/org/myPackage/*.java
test/org/myPackage/MyClass.java:3: error: package org.junit does not exist
import static org.junit.Assert.*;
...
В Eclipse тесты работают отлично. Что я делаю не так?
, глядя на структуру вашей папки, кажется, что 'lib' находится внутри' test', если это так, то я думаю, что ваше местоположение '$ (LIB)' должно быть изменено. –
Почему вы соединяете (несуществующий) вывод из 'mkdir' в' javac? Вероятно, вы должны указать аргумент '' lib/*. Jar'', чтобы избежать расширения оболочки. –
@SajanChandran Спасибо, исправлено. Я отредактировал свой OP. Все равно получите ту же ошибку. – xqtr