javac junit gibt “error: package org.junit ist nicht vorhanden"
Ich versuche, die Verwendung von JUnit in ein makefile, aber ich kann nicht ankommen es zu wirken.
Meine Ordner-Struktur ist wie folgt (makefile ist in myProject):
myProject
|--bin
|--main
|--org
|--myPackage
|--test
|--org
| |--myPackage
|
|--lib
wo /main enthält die wichtigsten Dateien /test enthält test-Dateien und /lib enthält hamcrest-core-1.3.jar
und junit-4.12.jar
Mein makefile 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 laufen gehe make test
bekomme 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 die tests funktionieren einwandfrei. Was mache ich falsch?
- suchen Sie in Ihrer Ordner-Struktur scheint es
lib
innerhalbtest
Ordner, wenn es ist, dann denke ich, Ihr$(LIB)
Standort muss geändert werden - Warum sind Sie Rohrleitungen, die (nicht vorhandene) Ausgabe von
mkdir
injavac? You should probably quote the
'lib/*.jar" argument, um die shell-Erweiterung zu. - Danke, behoben. Ich bearbeitet meine OP. Immer noch die gleichen Fehler.
- Danke, fester und fester. Ich bearbeitet meine OP. Immer noch die gleichen Fehler.
Du musst angemeldet sein, um einen Kommentar abzugeben.
BEARBEITEN SIE DIE ANTWORT GEFUNDEN
Ok, so habe ich gelesen-einige mehr und einige änderungen vorgenommen.
Erste in meiner Struktur:
vom hier.
Und mein neues makefile:
, Damit die änderungen sind:
vom hier.
Habe ich vergessen zu zählen
$(JAVAC_FLAGS)
zutest
so, dass es nicht Ziel den richtigen Ordner (root/anstelle von/bin/).Danke für die Hilfe!