相关疑难解决方法(0)

无根测试

在Eclipse中运行我的所有测试(Eclipse 3.4'Ganymede')时,在"Unrooted Tests"下列出了一个测试.我正在使用Junit 3.8,这个特殊的测试扩展了TestCase.我认为这个测试和其他测试之间没有任何区别.我不记得在Eclipse 3.3(Europa)中发生这种情况.

澄清:

我们还没有转移到JUnit 4.0,所以我们没有使用注释.我也用Google搜索,似乎大多数人都遇到了JUnit 4的问题,但我没有看到任何解决方案.此时测试通过本地和CruiseControl传递,所以我并不过分担心,但很好奇.

但是,当我第一次看到这个时,它是在一个失败的测试中,只有在与其他测试一起运行时才会失败.这让我陷入了兔子洞,寻找解决我从未找到的"无根"问题的解决方案.最终我发现了另一个没有正确拆除的测试的罪魁祸首.

我同意,它看起来像Eclipse问题.

java eclipse junit ganymede eclipse-3.4

31
推荐指数
5
解决办法
5万
查看次数

Ant + JUnit:NoClassDefFoundError

好的,我很沮丧!我已经狩猎了好几个小时,我仍然难过.

环境:WinXP,Eclipse Galileo 3.5(直接安装 - 无需额外插件).

所以,我有一个简单的JUnit测试.它从内部Eclipse JUnit运行配置运行良好.这个类没有依赖任何东西.为了尽可能缩小这个问题,它只包含:

@Test
public void testX() {
    assertEquals("1", new Integer(1).toString());
}
Run Code Online (Sandbox Code Playgroud)

到目前为止没有汗水.现在我想采取从Ant内部运行此测试用例的超级高级步骤(最终目标是与Hudson集成).

所以,我创建了一个build.xml:

<project name="Test" default="basic">
    <property name="default.target.dir" value="${basedir}/target" />
    <property name="test.report.dir" value="${default.target.dir}/test-reports" />

    <target name="basic">
        <mkdir dir="${test.report.dir}" />
        <junit fork="true" printSummary="true" showOutput="true">
            <formatter type="plain" />
            <classpath>
                <pathelement path="${basedir}/bin "/>
            </classpath>
            <batchtest fork="true" todir="${test.report.dir}" >
                <fileset dir="${basedir}/bin">
                    <include name="**/*Test.*" />
                </fileset>
            </batchtest>
        </junit>
    </target>
</project>
Run Code Online (Sandbox Code Playgroud)

$ {basedir}是工作空间中包含源,类和构建文件的Java项目名称.所有.java和build.xml都在$ {basedir}/src中..class文件位于$ {basedir}/bin中.

我已经通过Windows/Preferences/Ant/Runtime/Contributed Entries将eclipse-install-dir/plugins/org.junit4_4.5.0.v20090423/junit.jar添加到Ant运行时类路径中.ant-junit.jar在Ant Home Entries中.

那么,当我运行这个疯狂复杂的目标时会发生什么?我的报告文件包含:

Testsuite: com.xyz.test.RussianTest
Tests run: 1, Failures: 0, Errors: 1, Time …
Run Code Online (Sandbox Code Playgroud)

java ant junit classpath hamcrest

26
推荐指数
3
解决办法
4万
查看次数

JUNIT 初始化错误

这是我的文件 AllTests 代码:

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({
    ElementTests.class
})
public class AllTest {}
Run Code Online (Sandbox Code Playgroud)

元素测试.java

import org.junit.Test;
import pl.polsl.lab1.Model.*;
import static org.junit.Assert.*;
import org.junit.Test;

public class ElementTests {

    @Test
    public void properSymbolPlayerTest()
    {
        //given
        ElementOfBoard element = new ElementOfBoard();
        ElementOfBoard element2 = new ElementOfBoard();
        //when
        element.setSymbol(1);
        element.setSymbol(2);
        //then
        assertEquals('O', element);
        assertEquals('X', element2);
    }  

}
Run Code Online (Sandbox Code Playgroud)

我的错误

请问怎么解决啊 我正在使用 junit 4.11。我真的不知道初始化错误可能是什么。你能帮我吗?

我的堆栈跟踪:

org/hamcrest/SelfDescribing
java.lang.NoClassDefFoundError
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native …
Run Code Online (Sandbox Code Playgroud)

java junit

6
推荐指数
1
解决办法
5万
查看次数

标签 统计

java ×3

junit ×3

ant ×1

classpath ×1

eclipse ×1

eclipse-3.4 ×1

ganymede ×1

hamcrest ×1