如何使用 Ant 运行类别/套件中的所有 JUnit 测试?

2024-01-08

我在类似于中描述的设置中使用 JUnit 类别和 ClassPathSuite这个答案 https://stackoverflow.com/questions/2176570/how-to-run-all-tests-belonging-to-a-certain-category-in-junit-4/2176791#2176791。回顾一下:

public interface FastTests {
}

@RunWith(Categories.class)
@Categories.IncludeCategory(FastTests.class)
@Suite.SuiteClasses(AllTests.class)
public class FastTestSuite {
}

@RunWith(ClasspathSuite.class) 
public class AllTests {
}

...AllTests 使用类路径套件 http://www.johanneslink.net/projects/cpsuite.jsp图书馆。

属于 FastTests 类别的测试类如下所示:

@Category(FastTests.class)
public class StringUtilsTest {
    //  ...
}

当我在 IDE 中运行“FastTestSuite”时,所有带有 FastTests 注释的测试都会执行,非常流畅:

Now, 我想用 Ant 做同样的事情。 (令我惊讶的是,我无法轻松地在 SO 上找到这方面的说明。)换句话说,我需要一个使用 FastTests 注释运行所有测试的 Ant 目标。

我尝试过一些简单的方法<test> or <batchtest>...

 <junit showoutput="true" printsummary="yes">
     <test name="fi.foobar.FastTestSuite"/>
     <formatter type="xml"/>
     <classpath refid="test.classpath"/>
 </junit>

...但到目前为止还没有运气。

Edit:除了 IDE 之外,它还可以在命令行上与 JUnitCore 配合使用:

$ java -classpath "classes:WebContent/WEB-INF/lib/*" org.junit.runner.JUnitCore fi.foobar.FastTestSuite
.............
Time: 0.189

OK (13 tests)

是的,我可以使用它<batchtest>很简单:

<junit showoutput="true" printsummary="yes" fork="yes">
    <formatter type="xml"/>
    <classpath refid="test.classpath"/>
    <batchtest todir="${test.reports}">
        <fileset dir="${classes}">
            <include name="**/FastTestSuite.class"/>
        </fileset>
    </batchtest>
</junit>

我曾尝试过<batchtest>早些时候,但犯了一个愚蠢的错误,使用"**/FastTestSuite.java"代替"**/FastTestSuite.class" in the <include>元素...抱歉:-)

NB: 需要设置一下fork="yes"(即,在单独的虚拟机中运行测试);否则这也会在 java.lang.reflect.Constructor.newInstance(Constructor.java:513) 处产生“initializationError”,例如<test>(参见对该问题的评论)。然而,我无法得到<test>甚至与fork="yes".

The 唯一的缺点的一个问题是,这只会生成一个 JUnit XML 报告文件 (TEST-fi.foobar.FastTestSuite.xml),这使得它看起来像是所有(数百个)测试都在一个类 (FastTestSuite) 中。如果有人知道如何调整它以显示原始类和包中的测试,请告诉我。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Ant 运行类别/套件中的所有 JUnit 测试? 的相关文章

  • Java Try Catch Final 没有 Catch 的情况下会阻塞

    我正在审查一些新代码 该程序只有一个 try 和一个 finally 块 既然排除了 catch 块 那么如果 try 块遇到异常或任何可抛出的内容 它如何工作 它直接进入finally块吗 如果 try 块中的任何代码可以引发已检查异常
  • 将 jar 作为 Linux 服务运行 - init.d 脚本在启动应用程序时卡住

    我目前正在致力于在 Linux VM 上实现一个可运行的 jar 作为后台服务 我已经使用了找到的例子here https gist github com shirish4you 5089019作为工作的基础 并将 start 方法修改为
  • 未找到 MessageSource 的 ResourceBundle [消息]:找不到基本名称消息的包

    在 applicationContext xml 中 我定义了 MessageSource 如下所示
  • 添加动态数量的监听器(Spring JMS)

    我需要添加多个侦听器 如中所述application properties文件 就像下面这样 InTopics Sample QUT4 Sample T05 Sample T01 Sample JT7 注意 这个数字可以多一些 也可以少一些
  • Java:使用 HttpURLConnection 的 HTTP PUT

    如何执行 HTTP PUT 我正在使用的类似乎认为它正在执行 PUT 但端点将其视为我执行了 GET 我做错了什么吗 URL url new URL https HttpURLConnection conn HttpURLConnectio
  • 使用 RecyclerView 适配器在运行时更改布局屏幕

    我有两个布局文件 如下所示 如果列表中存在数据 则我显示此布局 当列表为空时 我会显示此布局 现在我想在运行时更改布局 当用户从列表中删除最后一项时 我想将布局更改为第二张图片中显示的 空购物车布局 In getItemCount Recy
  • 如何从 Retrofit2 获取字符串响应?

    我正在做 android 正在寻找一种方法来执行超级基本的 http GET POST 请求 我不断收到错误 java lang IllegalArgumentException Unable to create converter for
  • 隐式超级构造函数 Person() 未定义。必须显式调用另一个构造函数?

    我正在开发一个项目 但收到错误 隐式超级构造函数 Person 未定义 必须显式调用另一个构造函数 我不太明白它 这是我的人物课程 public class Person public Person String name double D
  • 列表应该如何转换为具体的实现?

    假设我正在使用一个我不知道源代码的库 它有一个返回列表的方法 如下所示 public List
  • 计算日期之间的天数差异

    在我的代码中 日期之间的差异是错误的 因为它应该是 38 天而不是 8 天 我该如何修复 package random04diferencadata import java text ParseException import java t
  • 解析输入,除了 System.in.read() 之外不使用任何东西

    我很难找到具体的细节System in read 有效 也许有人可以帮助我 似乎扫描仪会更好 但我不允许使用它 我被分配了一个任务 我应该以 Boolean Operator Boolean 的形式读取控制台用户输入 例如T F 或 T T
  • 为什么java中的for-each循环中需要声明变量

    for 每个循环的通常形式是这样的 for Foo bar bars bar doThings 但如果我想保留 bar 直到循环结束 我可以not使用 foreach 循环 Foo bar null Syntax error on toke
  • 对象锁定私有类成员 - 最佳实践? (爪哇)

    I asked 类似的问题 https stackoverflow com questions 10548066 multiple object locks in java前几天 但对回复不满意 主要是因为我提供的代码存在一些人们关注的问题
  • JVM:是否可以操作帧堆栈?

    假设我需要执行N同一线程中的任务 这些任务有时可能需要来自外部存储的一些值 我事先不知道哪个任务可能需要这样的值以及何时 获取速度要快得多M价值观是一次性的而不是相同的M值在M查询外部存储 注意我不能指望任务本身进行合作 它们只不过是 ja
  • 解决错误javax.mail.AuthenticationFailedException

    我不熟悉java中发送邮件的这个功能 我在发送电子邮件重置密码时遇到错误 希望你能给我一个解决方案 下面是我的代码 public synchronized static boolean sendMailAdvance String emai
  • 挂钩 Eclipse 构建过程吗?

    我希望在 Eclipse 中按下构建按钮时能够运行一个简单的 Java 程序 目前 当我单击 构建 时 它会运行一些 JRebel 日志记录代码 我有一个程序可以解析 JRebel 日志文件并将统计信息存储在数据库中 是否可以编写一个插件或
  • 哪个集合更适合存储多维数组中的数据?

    我有一个multi dimensional array of string 我愿意将其转换为某种集合类型 以便我可以根据自己的意愿添加 删除和插入元素 在数组中 我无法删除特定位置的元素 我需要这样的集合 我可以在其中删除特定位置的数据 也
  • Hibernate 和可序列化实体

    有谁知道是否有一个框架能够从实体类中剥离 Hibernate 集合以使它们可序列化 我查看了 BeanLib 但它似乎只进行实体的深层复制 而不允许我为实体类中的集合类型指定实现映射 BeanLib 目前不适用于 Hibernate 3 5
  • 在android中跟踪FTP上传数据?

    我有一个运行 Android 的 FTP 系统 但我希望能够在上传时跟踪字节 这样我就可以在上传过程中更新进度条 安卓可以实现这个功能吗 现在 我正在使用org apache common net ftp我正在使用的代码如下 另外 我在 A
  • 嵌入式 Jetty - 以编程方式添加基于表单的身份验证

    有没有一种方法可以按如下方式以编程方式添加基于表单的身份验证 我用的是我自己的LdapLoginModule 最初我使用基本身份验证并且工作正常 但现在我想在登录页面上进行更多控制 例如显示徽标等 有没有好的样品 我正在使用嵌入式 jett

随机推荐

  • 用原则 2 设置 LIMIT?

    我尝试编写一个查询 使用子查询 但我不知道如何在子查询中设置限制 我的查询 query ids this gt getEntityManager gt createQuery SELECT e id FROM MuzichCoreBundl
  • 在 CentOS 7.7 上初始化 MariaDB 10.4.12

    我在计算机上配置了 3 个驱动器 1 个用于数据文件 1 个用于事务日志文件 1 个用于临时文件 我想在 yum 安装后第一次运行时初始化 MariaDB 这是我的步骤 使用以下参数创建 etc my cnf mysqld aria log
  • 将 NuGet contentFiles 传递到引用的项目

    我有一个 NuGet 包 其中有一个打包为Content in contentFiles folder 然后我有两个带有 SDK 样式 csproj 的 C 项目 A 和 B 其中项目B参考项目A as a ProjectReference
  • 如何使用数据注释属性类来消除表单中的空字符串?

    我试图在表单中要求一个文本输入字段 这意味着表单中需要有一些内容 然而 添加一个 Required 我的模型的标签不起作用 具体来说 查看用户名属性 public class ColumnWidthMetaData DisplayName
  • 结构图 Web Api 2 帐户控制器和个人帐户

    我对 IOC 和 web api 2 相当陌生 但已经让 StructureMap 在 web api 2 中的我自己的控制器上工作 我没有管理的是使用个人帐户在 AccountController 上使用 StructureMap 我使用
  • 在 Firefox 附加组件中打开套接字连接

    我想从 JavaScript 中的 Firefox 插件中打开套接字连接 传出 而不是侦听 nsIServerSocket 连接应该是 TCP 到指定端口上的本地主机 并将用于与计算机上运行的另一个进程进行通信 我怎样才能打开这样的客户端套
  • ionic4/Angular7 - 类型“文件”上不存在属性“dataDirectory”

    i user 文件传输 https ionicframework com docs native file transfer 下载需要的文件文件本机 https ionicframework com docs native file还 在i
  • 处理游戏中心身份验证

    根据苹果文档 https developer apple com library ios documentation GameKit Reference GKLocalPlayer Ref Reference Reference html我
  • Apple 当前的 Reachability 类是否向后兼容 iOS 3.1?

    我正在实施苹果的可达性 http developer apple com iphone library samplecode Reachability Introduction Intro html apple ref doc uid DT
  • 用两个或多个其他元素替换列表中的单个元素,而不影响其余元素的顺序

    有没有办法用两个或更多其他元素替换列表中的单个元素而不干扰列表的其余部分 我知道您可以将一个元素替换为另一个元素 但我正在寻找要添加的多个元素 用例是我想根据特定条件将给定元素拆分为两个或多个元素 例如 假设列表包含图上从节点 A 到节点
  • CTE 会提高性能吗?

    with ini as select select ini a join ini b join ini c SQL Server引擎执行了多少次calculate结果来自ini table 我试图回答 在你的帮助下 的问题是如果with语句
  • NodeJS 是否可以动态返回 SSL 证书?

    我想在我的 NodeJS 应用程序中动态返回 ssl 证书信息 我有两个域名链接到同一个节点应用程序 我只看到创建服务器时可以指定 ssl 设置 是否可以根据请求的 url 动态返回 ssl 证书 否则 如果我必须在另一个端口上创建第二个服
  • 如何从java中的.class文件获取实例

    坦白说 我什至不知道这是否可能 但我想做的就像下面这样 我通过终端中的 javac 命令从 ClassFile java 创建了一个类文件 然后我想从 java 文件或 class 文件获取一个实例 接下来 我在eclipse中制作了另一个
  • Angular Js 和 google api client.js (gapi)

    我花了一天的时间才让它发挥作用 所以我认为我的经验可能对某人有用 也许其他一些人会发现改进 所以我两天前就开始了 angularJS 我希望它与 Google Cloud Endpoints 一起创建后端接口 我的麻烦来了 gapi 的 j
  • 如何从 Main 调用 void 函数

    在我的程序中 我试图从 Main 调用 void 函数 但我无法找出正确的方法 Main位于最底部并且void GetTicketType char Choice 是我需要调用的函数cout门票类型 Purpose This program
  • 无法加载 tsc.ps1,因为该系统上禁用了运行脚本

    在 PowerShell 上 执行时收到错误消息tsc 这以前从未发生过 我不确定是否应该混合 PowerShell 安全设置来纠正此问题 例如基于此 PowerShell 表示 此系统上禁用了脚本执行 https stackoverflo
  • 如何检查数据库中是否存在 Oracle 视图?执行查询之前

    我需要知道一种在执行查询之前从 Java 桌面应用程序检查当前数据库中是否存在 Oracle 视图的方法 否则我会遇到很多麻烦 提前致谢 您随时可以查询Oracle数据字典 就像是 SELECT COUNT FROM all views W
  • Haskell 应用变压器的示例

    www haskell org 上的 wiki 告诉我们以下有关 Applicative Transformer 的信息 那么应用变压器在哪里呢 答案是 我们不需要适用函子的特殊变压器 因为它们可以以通用方式组合 http www hask
  • 为什么 MyPage._meta.get_field("title").verbose_name 会更改 Wagtail 中所有标题的标签?

    我的 Wagtail 项目中有几个应用程序 其中之一是 新闻 其中包含新闻 页面 我想在管理中将标题的标签 标题 覆盖为 标题 News meta get field title verbose name Headline 结果 我在所有应
  • 如何使用 Ant 运行类别/套件中的所有 JUnit 测试?

    我在类似于中描述的设置中使用 JUnit 类别和 ClassPathSuite这个答案 https stackoverflow com questions 2176570 how to run all tests belonging to