为了账号安全,请及时绑定邮箱和手机立即绑定

JUnit 执行所有包的所有测试类

JUnit 执行所有包的所有测试类

慕的地6264312 2022-07-06 19:01:32
有什么方法可以一次构建 JUnit 的所有测试用例?就像在“Ruby on rails”上通过命令“rake test”执行所有测试类。对于 Java,我看到了一些在包中执行所有测试的解决方案。但我想为所有包执行所有测试用例。可能吗?我应该如何处理 build.xml 文件?
查看完整描述

2 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

您可以运行按包名或类名过滤的所有测试或特定测试。这是<batchtest>取自JUnit 任务手册的示例:


<junit printsummary="yes" haltonfailure="yes">

    <classpath>

        <pathelement location="${build.tests}"/>

        <pathelement path="${java.class.path}"/>

    </classpath>


    <formatter type="plain"/>


    <test name="my.test.TestCase" haltonfailure="no" outfile="result">

        <formatter type="xml"/>

    </test>


    <batchtest fork="yes" todir="${reports.tests}">

        <fileset dir="${src.tests}">

            <include name="**/*Test*.java"/>

            <exclude name="**/AllTests.java"/>

        </fileset>

    </batchtest>

</junit>

您可以根据需要调整<include name=""/>/<exclude name=""/>元素或添加更多包含/排除元素。<target/>然后,您可以为不同的测试创建不同的 ant <target name="all-tests"/>,例如<target name="package-foo-tests"/>等。


查看完整回答
反对 回复 2022-07-06
?
ibeautiful

TA贡献1993条经验 获得超5个赞

我还不能添加评论,这就是我发布这个答案的原因。


我认为您需要的是一个测试套件类。


如下所示。


package com.emeter.test.predeploy.sdm.common;


import org.junit.runner.RunWith;

import org.junit.runners.Suite;

import org.junit.runners.Suite.SuiteClasses;


import com.emeter.test.predeploy.sdm.svc.TestOutdatedComponentRpt;

import com.emeter.test.predeploy.sdm.svc.TestSubstationSvc;

import com.emeter.test.predeploy.sdm.svc.TestSvmComponentSvc;

import com.emeter.test.predeploy.sdm.svc.TestSvmNotificationSvc;


@RunWith(Suite.class)

@SuiteClasses({


TestSubstationSvc.class,

TestSvmComponentSvc.class,

TestSvmNotificationSvc.class,

TestOutdatedComponentRpt.class

 }

)

public class TestSuite {


}

您可以从任何包中导入所需的类,然后一次运行它们。包含测试用例的类放在“SuiteClasses”注释下。


编辑:您只需像 eclipse 中的任何其他测试用例文件一样运行它。


查看完整回答
反对 回复 2022-07-06
  • 2 回答
  • 0 关注
  • 223 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信