Sto provando a utilizzare JUnit in un makefile ma non riesco a farlo funzionare.javac junit restituisce "errore: pacchetto org.junit non esiste"
La mia struttura di cartelle è la seguente (makefile è in myProject):
myProject
|--bin
|--main
|--org
|--myPackage
|--test
|--org
| |--myPackage
|
|--lib
dove/principale contiene i file principali,/test contiene file di prova e/lib contiene hamcrest-core-1.3.jar
e junit-4.12.jar
mio makefile è come segue:
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
quando sono in esecuzione make test
ottengo il seguente:
~/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.*;
...
In Eclipse i test funzionano perfettamente. Che cosa sto facendo di sbagliato?
osservando la struttura della cartella sembra che 'lib' si trova nella cartella' test', se è quindi penso che la posizione '$ (LIB)' deve essere cambiata –
Perché stai eseguendo il piping (inesistente) uscita da 'mkdir' in' javac? Probabilmente dovresti citare l'argomento ''lib/*. Jar'' per evitare che la shell lo espanda troppo. –
@SajanChandran Grazie, risolto. Ho modificato il mio OP. Ancora ottenere lo stesso errore. – xqtr