【问题标题】:Difference between org.junit.Test and junit.framework.Test packagesorg.junit.Test 和 junit.framework.Test 包之间的区别
【发布时间】:2013-09-24 02:25:21
【问题描述】:
<project name="JunitSuite" basedir="." default="clean">

    <property name="${src}" value="./src/JunitSuiteProject" />
    <property name="${build}" value="./build" />
    <property name="package" value="JunitSuiteProject"/>
    <property name= "jar" value="./build/jar"/>

    <target name="clean">
        <delete dir="./build"/>
        <mkdir dir="./build"/>
        <mkdir dir="./build/jar"/>
    </target>

<target name="run">
        <junit printsummary="yes" haltonfailure="yes" showoutput="yes">
            <classpath location="C:\Program Files\Java\apache-ant-1.9.2\lib\selenium-server-standalone-2.35.0.jar"/>
            <classpath location="E:\Swaroop Don't Touch\Selenium\eclipse-jee-juno-SR2-win32\eclipse\plugins\org.junit_3.8.2.v3_8_2_v20100427-1100\junit.jar"/>
            <classpath location="C:\Program Files\Java\apache-ant-1.9.2\lib\*.jar"/>
            <classpath location="E:\Swaroop Don't Touch\Selenium\eclipse-jee-juno-SR2-win32\eclipse\plugins\"/>
            <formatter type="brief" usefile="false"/>               
        <batchtest fork="yes"> 
            <fileset dir="C:\Program Files\Java\apache-ant-1.9.2\lib" includes="selenium-server-standalone-2.35.0.jar"/>
            <fileset dir="E:\Swaroop Don't Touch\Selenium\eclipse-jee-juno-SR2-win32\eclipse\plugins\org.junit_3.8.2.v3_8_2_v20100427-1100" includes="junit.jar"/>
            <fileset dir="C:\Program Files\Java\apache-ant-1.9.2\lib" includes="*.jar"/>
            <fileset dir="./build" includes="**/AllTests.*"/> 
        </batchtest>
     </junit>
</target>   

    <target name="compile">
        <javac srcdir="./src/JunitSuiteProject" destdir="./build" includeantruntime="true">
                  <classpath location="C:\Program Files\Java\apache-ant-1.9.2\lib\selenium-server-standalone-2.35.0.jar" />
        </javac>
    </target>

    <target name="jar">
        <jar destfile="./build/jar/JunitSuite.jar" basedir="./build">
        </jar>
      </target>

</project>
    **************************************************************

    package JunitSuiteProject;


    import junit.framework.TestSuite;
    import junit.framework.Test;
    import org.junit.runners.Suite;
    import org.junit.runner.RunWith;
    import org.junit.runners.Suite.SuiteClasses;

    @RunWith(Suite.class)
    @SuiteClasses({JunitTest1.class})


    public class AllTests extends TestSuite{

        public static Test Suite(){
        TestSuite g = new TestSuite();
        g.addTest(new JunitTest1("testprintTest"));
        return g;
    }
        public static void main(String[]args){
            junit.textui.TestRunner.run(Suite());
        }
    }

当我在 Junit 中指定 Jars 的位置时,谁能告诉我这里有什么问题,为什么我在触发 Ant 文件时出现 ClassNotFoundException 错误。

The output says: 

[junit] Running AllTests
    [junit] Testsuite: AllTests
    [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
    [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
    [junit] Null Test:  Caused an ERROR
    [junit] AllTests
    [junit] java.lang.ClassNotFoundException: AllTests

使用的 junit 是 3.8 版本,它作为 junit 测试执行良好,但从 build.xml 文件启动时出错。

【问题讨论】:

标签: selenium webdriver junit4 junit3


【解决方案1】:

junit.framework.Test 包是旧项目使用的遗留命名空间,这些项目使用 JUnit v3,适用于不支持注释的 Java 版本。

org.junit.Test 包是 JUnit v4 使用的新命名空间,它的注释需要 Java v1.5 或更高版本。如果可能,请使用 JUnit 4 和最新的 Java,因为新的注释非常出色。

JUnit 4 的当前发行版包含旧命名空间的副本,以便于迁移;但是您应该避免使用 JUnit3 形式进行新测试,并尽可能将旧测试转换为 JUnit 4。

在 JUnit 4 中,两个包都包含在库 jar 中以用于迁移,但您应该使用 org.junit.Test 来获取新代码,并且这些测试不需要扩展 TestCase。

你可以看到a basic example of Junit4 test case

【讨论】:

  • 即使在上面的代码中提供了类路径后,我也无法理解 ant 是如何与 junit 对话的。如果我错了,请赐教,因为我是 junit 和 ant 的新手......
  • 您的 Ant build.xml 引用的是 3.8 (org.junit_3.8.2.v3_8_2_v20100427-1100)。 “作为junit测试执行罚款”是什么意思?你的意思是在 Eclipse 内部作为 JUnit 测试运行吗?如果是这样的话,因为 Eclipse 必须使用 Junit 的 V4.x。您正在使用注释,因此您必须使用 v4.x 库代替上述内容。
猜你喜欢
  • 2014-06-15
  • 2015-10-05
  • 2018-11-03
  • 2018-12-31
  • 2016-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多