Próbuję użyć JUnit w makefile, ale nie mogę go uruchomić.javac junit daje "błąd: pakiet org.junit nie istnieje"
Moja struktura folderów jest następująca (makefile jest w myproject):
myProject
|--bin
|--main
|--org
|--myPackage
|--test
|--org
| |--myPackage
|
|--lib
gdzie/główny zawiera główne plików/test zawiera pliki testowe i/lib zawiera hamcrest-core-1.3.jar
i junit-4.12.jar
Moje makefile jest w następujący sposób:
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
Kiedy biegnę make test
otrzymuję następujący:
~/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.*;
...
W Eclipse testy działają doskonale. Co ja robię źle?
patrząc na swojej strukturze folderów wydaje 'lib' jest wewnątrz' test' folderu, jeśli jest ona wtedy myślę, że '$ (LIB)' lokalizacja musi być zmieniony –
Czemu rurociągowy (nieistniejąca) wynik z 'mkdir' na' javac? Powinieneś prawdopodobnie zacytować argument ''lib/*. Jar'', aby uniknąć rozszerzenia powłoki również. –
@SajanChandran Dzięki, naprawione. Edytowałem mój OP. Nadal dostaję ten sam błąd. – xqtr