首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从makefile运行JUnit (java.lang.NoClassDefFoundError)

从makefile运行JUnit (java.lang.NoClassDefFoundError)
EN

Stack Overflow用户
提问于 2014-08-18 09:03:24
回答 1查看 1.7K关注 0票数 0

我有一个JUnit项目,我想添加到一个工具链中。这个工具链使用Makefile。Makefile不在我的prject目录中。因此,我尝试在这个makefile中设置一个“测试”规则如下:

代码语言:javascript
运行
复制
PROJPATH=TestJUnit/Test/

PACKAGE=com/project/package/name/

LIB=$(PROJPATH)lib/
SRC=$(PROJPATH)src/$(PACKAGE)
BIN=$(PROJPATH)bin/$(PACKAGE)

---------  All the acces to lib.jar and .class used during the test ------
CLASSPATH=.:$(LIB)junit.jar:$(LIB)opal-library.jar:$(SRC):$(BIN)

--------- Name of test in order of wanted excecution -------------  
JAVASRC=    Test1\
            Test2\
            Test3\

test:
        java -classpath $(JUNITPATH) org.junit.runner.JUnitCore $(JAVASRC)

当我试着启动“做测试”

我收到以下信息:

代码语言:javascript
运行
复制
JUnit version 4.11
Exception in thread "main" java.lang.NoClassDefFoundError: Test1 (wrong name: com/project/name/Test1)

我尝试了一切可能的方法,甚至在我的项目目录中启动java命令,但是没有任何效果。所有的.class和.java都分别在bin和src的董事会中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-19 14:01:11

好的,伙计们,我喜欢这个问题。似乎类路径并不坏,但是调用测试的方式是错误的。只需在类路径中添加/src和/bin (没有子包目录),并将包名连接到测试类名,测试就会成功启动。

就像这样:

代码语言:javascript
运行
复制
PROJPATH=TestJUnit/Test/

PACKAGE=com.project.package.name.

LIB=$(PROJPATH)lib/
SRC=$(PROJPATH)src/
BIN=$(PROJPATH)bin/

---------  All the acces to lib.jar and .class used during the test ------
CLASSPATH=.:$(LIB)junit.jar:$(LIB)opal-library.jar:$(SRC):$(BIN)

--------- Name of test in order of wanted excecution -------------  
JAVASRC=    $(PACKAGE)Test1\
            $(PACKAGE)Test2\
            $(PACKAGE)Test3\

test:
        java -classpath $(JUNITPATH) org.junit.runner.JUnitCore $(JAVASRC)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25359641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档