如何将 JUnit 测试用例导出到可执行的 .jar 中?

2024-03-01

我正在使用 Selenium 和 JUnit 来自动化一些测试。我希望能够将其导出到可运行的 jar 文件中。我无法做到这一点,我假设这是因为没有 main 方法,JVM 不知道要运行什么......

我看到了这个帖子如何将(JUnit)测试套件导出为可执行 jar https://stackoverflow.com/q/4648341/8854270它建议添加一个 main 并从那里运行 JUnit。 (我本来想对那篇文章发表评论,但它不允许我????)

public static void main(String[] args) {
    JUnitCore.main("folder.package.testClass");
}

我用这个 main 方法创建了一个新的 java 类,但测试类从未执行(来自 eclipse)。此外,如果我尝试导出该项目,我会收到错误并且无法导出。

为了将所有 JUnit 类导出到 1 个 Jar 文件并从那里运行,最好的方法是什么?我可能会构建一个小菜单,用户可以在其中选择他们想要运行的测试类(我假设在某些地方需要一个 main 方法......)。


您可以通过执行以下操作来执行测试(刚刚检查了当前场景):

  1. 创建新的 EclipseJava项目
  2. 将 junit 和 hamcrest jar 添加到您的构建路径(我正在使用junit-4.12 and hamcrest-core-1.3)。它应该看起来:
  1. 在下创建您的测试test folder:

    package com.example.junit5;
    
    import static org.junit.Assert.assertTrue;
    
    import org.junit.Test;
    
    public class FirstTest {
    
        @Test
        public void testTrue() {
            System.out.println("Executing testTrue()");
            assertTrue(true);     
         }
    }
    
  2. 在下面创建您的主(执行器)类src folder:

    package com.example.junit5;
    
    import org.junit.runner.JUnitCore;
    
    public class Executor {
    
        public static void main(String[] args) {
            JUnitCore.main("com.example.junit5.FirstTest");
        }
    
    }
    
  3. 执行你的测试Java应用程序. 结果应该是:

我的环境配置是:

java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

希望这会有所帮助

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

如何将 JUnit 测试用例导出到可执行的 .jar 中? 的相关文章

  • 如何为最终用户方便地启动Java GUI程序

    用户想要从以下位置启动 Java GUI 应用程序Windows 以及一些额外的 JVM 参数 例如 javaw Djava util logging config file logging properties jar MyGUI jar
  • 如何使用 Java 和 Selenium WebDriver 在 C 目录中创建文件夹并需要将屏幕截图保存在该目录中?

    目前正在与硒网络驱动程序和代码Java 我有一种情况 我需要在 C 目录中创建一个文件夹 并在该文件夹中创建我通过 selenium Web 驱动程序代码拍摄的屏幕截图 它需要存储在带有时间戳的文件夹中 如果我每天按计划运行脚本 所有屏幕截
  • Java中反射是如何实现的?

    Java 7 语言规范很早就指出 本规范没有详细描述反射 我只是想知道 反射在Java中是如何实现的 我不是问它是如何使用的 我知道可能没有我正在寻找的具体答案 但任何信息将不胜感激 我在 Stackoverflow 上发现了这个 关于 C
  • Java EE:如何获取我的应用程序的 URL?

    在 Java EE 中 如何动态检索应用程序的完整 URL 例如 如果 URL 是 localhost 8080 myapplication 我想要一个可以简单地将其作为字符串或其他形式返回给我的方法 我正在运行 GlassFish 作为应
  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • Play框架运行应用程序问题

    每当我尝试运行使用以下命令创建的新 Web 应用程序时 我都会收到以下错误Play http www playframework org Error occurred during initialization of VM Could no
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • 给定两个 SSH2 密钥,我如何检查它们是否属于 Java 中的同一密钥对?

    我正在尝试找到一种方法来验证两个 SSH2 密钥 一个私有密钥和一个公共密钥 是否属于同一密钥对 我用过JSch http www jcraft com jsch 用于加载和解析私钥 更新 可以显示如何从私钥 SSH2 RSA 重新生成公钥
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • 反射找不到对象子类型

    我试图通过使用反射来获取包中的所有类 当我使用具体类的代码 本例中为 A 时 它可以工作并打印子类信息 B 扩展 A 因此它打印 B 信息 但是当我将它与对象类一起使用时 它不起作用 我该如何修复它 这段代码的工作原理 Reflection
  • Mockito when().thenReturn 不必要地调用该方法

    我正在研究继承的代码 我编写了一个应该捕获 NullPointerException 的测试 因为它试图从 null 对象调用方法 Test expected NullPointerException class public void c
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • 禁止的软件包名称:java

    我尝试从数据库名称为 jaane 用户名 Hello 和密码 hello 获取数据 错误 java lang SecurityException Prohibited package name java at java lang Class
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用

随机推荐

  • [Hive]查询 hive 数据库时出现“ArrayIndexOutOfBoundsException”

    当我查询配置单元基础 hive 0 11 0 和 hive 0 12 0 时 我总是得到 ArrayIndexOutOfBoundsException 但有时不会 这是错误 java lang RuntimeException Hive R
  • Python Dataframe 在微秒内重新采样

    我正在处理重新采样数据帧 它可以在几小时 几天 几分钟内工作 但重新采样的时间不会少于秒 即使时间跨度很短 程序也会挂起 那么我错过了什么吗 我尝试了 0 000001S U 等 到目前为止没有任何效果 我的时间格式 2015 08 29
  • Networkx:获取节点之间的距离

    我是使用 NetworkX 的初学者 我正在尝试找到一种方法来检测哪些节点彼此之间的距离为 x 我开始使用这个算法来获取所有对 path nx all pairs dijkstra path G 但我仍然不确定如何使用 for 循环检测节点
  • 对 (->) 作为 monad 和 functor 的实例感兴趣

    我很感兴趣 gt 当我查找有关信息时 gt 在 ghci 中 它说 data gt a b Defined in GHC Prim 到目前为止一切都很好 但是当它说时它变得非常有趣 instance Monad gt r Defined i
  • VBA - 从 Access 生成 Excel 文件(查询表)

    我有一个项目 基本上目标是使用 VBA 在 Access 中单击按钮来生成 Excel 报告 该报告的内容是 SQL Server 数据库存储过程的结果 错误行 With MeuExcel Worksheets 4 QueryTables
  • 如何从父组件修改组件的样式?

    我需要从其父组件修改 Vue 组件的一些 CSS 属性 它将覆盖组件内定义的 CSS 我首先期望对于一个组件
  • 我可以使用 Firestore 获取使用 batch().set 创建的文档的生成 ID 吗?

    有没有一种方法可以获取使用 Firestore 批量创建的文档的自动生成 ID 使用时 add 我可以轻松获得 ID db collection posts add title Hello World then function docRe
  • 部署在 Web 服务器上时 Crystal Report 图标/工具栏不起作用

    我构建了一个网页 其中包含使用 Visual Studio 2008 中包含的 Crystal 库构建的 Crystal Report It 在我的机器上工作 http jcooney net archive 2007 02 01 4299
  • JSF 读取托管 bean 中的动态输入元素

    我有一个非常复杂的 JSF 页面 我们使用带有 Facelet 的 JSF2 我必须在其中 插入 一个纯 html 表单部分 它代表稍后将创建为 Pdf 的文档的所见即所得模板 页面看起来非常简化
  • 从字符中获取 KeyCode?

    我需要能够读取字符并获取与其语言和键盘布局相关的键 我知道如何看待文化背景和语言 但是我怎样才能知道像英语中的 S 这样的字母并且知道它在键盘上是什么键呢 或者对于更难的问题 我如何取出字母 并知道它在键盘上的键是什么 用一个示例程序可能比
  • 无法使用 iOS6.1 sdk 构建 Google Maps SDK for IOS 版本 1.7.0

    我刚刚更新到 GMS 版本 1 7 0 无法成功构建基础SDK iOS6 1 我可以使用 Base SDK iOS7 0 成功构建 GMS 版本 1 7 0 我还可以使用 Base SDK iOS6 0 或 7 0 成功构建旧的 GMS 版
  • MongoDb 区域副本集 - 每个区域的主节点?

    给定一个具有区域用户 区域为北美 欧洲 亚洲 的应用程序 如何创建允许 HK 用户写入最近节点的副本集 目标是香港的用户读取和写入其本地节点 而不会遭受写入美国的延迟 我的假设是 我可以在每个区域设置一个应用程序堆栈 通过副本集在所有区域之
  • 两种颜色的背景 - React Native

    有没有办法让背景有两种颜色 如下所示 两种颜色 https i stack imgur com 0DPHC png我尝试过使用线性渐变 但那只是渐变 我不知道如何在主视图标签中放置两种颜色作为背景 有什么建议么 如果视图的尺寸无法帮助您 请
  • go中如何将[][]byte转换为**char

    我想从 go byte 转换为 C char 换句话说 我在 go 中有一个字节矩阵 我想将其转换为 C 中的 char 双指针 请假设我必须有一个 byte 作为输入和一个 char 作为输出 我知道可以通过执行以下操作从 byte 转换
  • Lambda 的结果角色定义中的可信实体是什么?

    下面是 SAM 模板 Resources HelloWorldFunction Type AWS Serverless Function Properties CodeUri hello world Handler app LambdaHa
  • 在 Visual Studio 中哪里可以修改详细的 C# 编译器优化设置?

    在Visual Studio C C 项目中 可以很容易地在 属性页 C C 优化 中修改编译器的优化设置 例如 我们可能会给出不同的优化级别 例如 O2和 O3 以及高级优化 例如 省略帧指针 但是 我无法简单地在 Visual Stud
  • 减去具有不同时间戳的两个文档之间的数字字段

    假设我有这些数据样本 date 2019 06 16 rank 150 name doc 1 date 2019 07 16 rank 100 name doc 1 date 2019 06 16 rank 50 name doc 2 da
  • 为什么我的 KeyPressEvent 不能与右/左/上/下一起使用?

    在 C 中 我试图查看用户是否按下了正确的键 以便玩家向右移动 但是当我尝试时 它没有注册按键 private void KeyPressed object sender KeyPressEventArgs e if e KeyChar C
  • 与其活动相关的片段生命周期

    情况我的活动等待异步操作 在收到异步操作的回复后 它需要将信息传递给其中的 2 个片段 要求1 两个片段都需要它们的onCreateView为加载布局而进行的调用 2 他们需要全身心地投入到自己的活动中 以便getActivity work
  • 如何将 JUnit 测试用例导出到可执行的 .jar 中?

    我正在使用 Selenium 和 JUnit 来自动化一些测试 我希望能够将其导出到可运行的 jar 文件中 我无法做到这一点 我假设这是因为没有 main 方法 JVM 不知道要运行什么 我看到了这个帖子如何将 JUnit 测试套件导出为