首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >新手不能运行基本的unitils测试

新手不能运行基本的unitils测试
EN

Stack Overflow用户
提问于 2011-06-16 05:50:16
回答 1查看 2.7K关注 0票数 1

我正在试着运行一个基本的测试:

代码语言:javascript
复制
import org.junit.Test;
import org.unitils.UnitilsJUnit4;

public class SampleUnitilsTest extends UnitilsJUnit4 {

    @Test
    public void testTest() {
        assertTrue(true);
    }

}

但是我得到了下面的堆栈跟踪:

代码语言:javascript
复制
org.unitils.core.UnitilsException: An exception occured during the loading of core module hibernate with module class name org.unitils.orm.hibernate.HibernateModule
    at org.unitils.core.ModulesLoader.createAndInitializeModules(ModulesLoader.java:154)
    at org.unitils.core.ModulesLoader.loadModules(ModulesLoader.java:121)
    at org.unitils.core.Unitils.createModulesRepository(Unitils.java:222)
    at org.unitils.core.Unitils.init(Unitils.java:118)
    at org.unitils.core.Unitils.init(Unitils.java:105)
    at org.unitils.core.Unitils.initSingletonInstance(Unitils.java:74)
    at org.unitils.core.Unitils.getInstance(Unitils.java:52)
    at org.unitils.UnitilsJUnit4TestClassRunner.getUnitils(UnitilsJUnit4TestClassRunner.java:214)
    at org.unitils.UnitilsJUnit4TestClassRunner.getTestListener(UnitilsJUnit4TestClassRunner.java:204)
    at org.unitils.UnitilsJUnit4TestClassRunner.run(UnitilsJUnit4TestClassRunner.java:67)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.unitils.core.UnitilsException: Could not load class with name org.hibernate.cfg.AnnotationConfiguration
    at org.unitils.util.ReflectionUtils.getClassWithName(ReflectionUtils.java:482)
    at org.unitils.orm.hibernate.HibernateModule.init(HibernateModule.java:86)
    at org.unitils.core.ModulesLoader.createAndInitializeModules(ModulesLoader.java:151)
    ... 15 more
Caused by: java.lang.ClassNotFoundException: org.hibernate.cfg.AnnotationConfiguration
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at org.unitils.util.ReflectionUtils.getClassWithName(ReflectionUtils.java:479)
    ... 17 more

我的POM包括以下内容:

代码语言:javascript
复制
    <dependency>
        <groupId>org.unitils</groupId>
        <artifactId>unitils-core</artifactId>
        <version>3.1</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.unitils</groupId>
        <artifactId>unitils-dbunit</artifactId>
        <version>3.1</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.unitils</groupId>
        <artifactId>unitils-orm</artifactId>
        <version>3.1</version>
        <scope>test</scope>
    </dependency>

如果这很重要,我将在Eclipse Helios SR2 JUnit 4测试器中执行此操作。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-17 00:37:53

巧合的是,我也在尝试为我的db测试挑选unitils。我能够用maven 2.2.1复制你的问题。根据我以前使用maven和hibernate的工作经验,以及站点文档,这些依赖项应该就是您需要的全部。

如果有任何问题,它可能存在于与hibernate相关的pom定义中,并且确实在unitils-orm的pom中,以下依赖项被设置为可选的:

代码语言:javascript
复制
    <!-- Optional dependencies -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate</artifactId>
        <version>3.2.5.ga</version>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>3.3.1.ga</version>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>concurrent</groupId>
        <artifactId>concurrent</artifactId>
        <version>1.3.4</version>
        <optional>true</optional>
    </dependency>

添加hibernate-entitymanager确实解决了为什么该pom被定义为hibernate-entitymanager的问题,任何有效的原因只会为开发人员所知。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6364844

复制
相关文章

相似问题

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