当前位置: 首页 > 面试题库 >

如何为Junit单元测试设置JVM参数?

沈龙光
2023-03-14
问题内容

我有一些Junit单元测试,需要大量的堆空间才能运行-即1G。(他们测试了一个Webstart应用程序的内存密集型功能,该功能仅在具有足够的堆空间的情况下运行,并且将在Win 7 64位计算机上内部运行-因此,重新设计测试不是一个实际的建议。)

我正在Intellij IDEA中进行开发,因此我知道可以为测试类设置JVM参数(例如-Xmx1024M)。但是,这仅用于运行整个测试类-如果我想运行单个测试,则必须为该测试方法重新创建运行配置。

而且,这些设置是特定于IDE和特定于盒的-因此,如果我切换盒(在多台计算机上开发)或我的一位同事尝试运行测试,则不会转移这些设置。(此外,我的同事使用了其他IDE(例如Eclipse和NetBeans)。)FWIW,我们正在使用Mercurial进行源代码控制

在构建周期中,我们使用的是Maven,所以我知道如何为此指定JVM参数。

所以:-我正在寻找一种指定将适用于整个测试类和各个测试方法的JVM参数的方法;-我想在任何计算机上的IDE之间共享这些规范(已从存储库中获取了代码)。


问题答案:

在IntelliJ中,您可以为每个运行配置指定默认设置。在“运行/调试配置”对话框(用于配置每个测试的堆)中,单击“默认值”和“ JUnit”。这些设置将自动应用于每个新的JUnit测试配置。我猜Eclipse也有类似的设置。

但是,没有简单的选项可以在环境之间转移此类设置(至少在IntelliJ中)。您可以将IntelliJ项目文件提交到您的存储库:也许可以,但是我不建议这样做。

您知道如何将这些设置为maven-surefire-plugin。好。这是最可移植的方法(有关示例,请参见Ptomli的答案)。

其余的-您必须记住,JUnit测试用例只是一堆Java类,而不是独立的程序。由运行程序决定(让它成为独立的JUnit运行程序,即您的IDE)maven-surefire-plugin来设置这些选项。也就是说,没有“便携式”方式来设置这些选项,因此,与运行程序无关地应用内存设置。

举个例子:Xmx开发servlet时不能定义参数-取决于容器来定义它。您不能说:“此servlet应该始终与一起运行Xmx=1G



 类似资料:
  • 引发异常 java.lang.RuntimeException:Android.text.SpannableStringInternal中的方法长度未被模拟。有关详细信息,请参见http://g.co/androidstudio/not-mocked。 这在上面的链接中解释为 我想学习,所以我准备在问答式下面加上我的答案。

  • 我正在尝试用liquibase为一些测试设置数据库模式和一些测试数据。每个测试都有一个单独的changelog,它为测试设置模式和一些特定的数据。 为了使我的测试工作,我需要在每次测试之前删除模式,并用新的测试数据填充它。然而,这似乎并不奏效,因为有些测试正在失败,因为旧的测试数据仍然可用。我觉得我的配置有些东西不对。如何在每次测试之前强制liquibase删除模式?

  • 我正在使用jUnit 5为我的Spring引导服务类做单元测试。在服务类中,我是自动装配对象,用于调用其他类中的方法。在测试用例中,@Mock没有为@Autow的类创建对象。在这里,我给出了我的代码。 我的服务级别: 我的组件类 : 我的单元测试类: pom.xml 文件 : 在运行此测试时,我在imageProcessor.dummy(name)中获得空指针异常;

  • 问题内容: 初始化JavaFX运行时的正确方法是什么,以便您可以对使用并发工具和的控制器进行单元测试(使用JUnit)? 从该方法调用会导致死锁。如果未调用,则会引发以下错误: 后续:这是我根据@SergeyGrinev的建议一直使用的主题。 问题答案: 调用由是正确的做法。请注意,这不会将控制权返回给调用代码。因此,您必须将其包装到中。 7年后的更新: 使用TestFX!它将以适当的方式进行启动

  • } 然后我有我的服务课,看起来像这样 然后是我的存储库:

  • 本文向大家介绍详解Spring Boot Junit单元测试,包括了详解Spring Boot Junit单元测试的使用技巧和注意事项,需要的朋友参考一下 Junit这种老技术,现在又拿出来说,不为别的,某种程度上来说,更是为了要说明它在项目中的重要性。 凭本人的感觉和经验来说,在项目中完全按标准都写Junit用例覆盖大部分业务代码的,应该不会超过一半。 刚好前段时间写了一些关于SpringBoo