Ich versuche, JUnit in einem Makefile zu verwenden, aber ich kann es nicht zur Arbeit bekommen.javac junit gibt "Fehler: Paket org.junit existiert nicht"
Meine Ordnerstruktur ist wie folgt (Make-Datei ist in myProject):
myProject
|--bin
|--main
|--org
|--myPackage
|--test
|--org
| |--myPackage
|
|--lib
wo/main Hauptdateien enthält,/Test-Dateien enthält, Test und/lib enthält hamcrest-core-1.3.jar
und junit-4.12.jar
My Make-Datei ist wie folgt:
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
Wenn ich renne make test
erhalte ich die folgende:
~/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 funktionieren die Tests einwandfrei. Was mache ich falsch?
Wenn Sie auf Ihre Ordnerstruktur schauen, scheint es 'lib' ist innerhalb' test' Ordner, wenn es dann ist, ich denke, Ihre '$ (LIB)' Ort muss geändert werden –
Warum sind Sie die Rohrleitung (nicht existent) Ausgabe von 'mkdir' in' javac? Sie sollten wahrscheinlich das Argument '' lib/*. Jar'' angeben, um zu vermeiden, dass die Shell es ebenfalls erweitert. –
@SajanChandran Danke, behoben. Ich habe mein OP bearbeitet. Immer noch den gleichen Fehler. – xqtr