java 如何在eclipse中运行单个测试包及其子包?

4bbkushb  于 2023-04-19  发布在  Java
关注(0)|答案(4)|浏览(161)

我有一个Java/Maven项目,我的测试在src/test/java下。在那里我有两个包集成和单元,每个都有子包。我想在单元包和它的子包内运行所有测试。
我正在使用JUnit 4和Eclipse Kepler SR 2。
我知道使用右键单击-〉run它应该运行,但不知何故Eclipse没有找到任何测试。
这是可行的:

  • 单独运行每个测试
  • 运行所有的测试,右键点击src/test/java -〉run as。
  • 使用mvn测试只运行单元测试(使用surefire插件)

但是我想使用一些eclipse的codecoverage插件,为此我需要在eclipse中运行测试,而不需要集成测试。这不是覆盖工具的问题,vanillia作为junit测试运行也不起作用。
测试类被编译到target/test-classes。它们在那里:-/
有什么建议是什么原因造成的?

编辑:

好的,看起来eclipse只直接在选定的包中执行测试。如何在子包中执行测试?

j5fpnvbx

j5fpnvbx1#

我不确定eclipse的具体细节,但是你可以尝试一个测试套件,并设置运行它,它可能比一个包更容易指向。

@RunWith(Suite.class)
@SuiteClasses({
    unit.OneClass.class, 
    unit.TwoClass.class
})
public class UnitTestSuite {

等等

b4lqfgs4

b4lqfgs42#

你正在尝试做的事情(通过右键单击包来运行包中的所有测试)原则上应该可以工作,在Eclipse Kepler SR 2中对我来说当然可以。
如果它不起作用,大概原因是:

  • 旧版本的Eclipse
  • 损坏的安装
  • 腐败项目
  • 错误的类路径设置
  • junit 3/4之间一些不一致
  • 点击了错误的东西
oogrdqng

oogrdqng3#

您可以尝试使用cobertura。您有maven项目,因此在项目级别使用MAVEN命令mvn cobertura:cobertura会在/target/site/cobertura/index. html下生成代码覆盖率
不过,还有一个插件名为eclemma,这可能会有所帮助。

t40tm48m

t40tm48m4#

Eclipse release 2023-03(4.27)现在可以开箱即用。您可以右键单击包并运行所有测试,它现在也会运行子包测试。
https://www.eclipse.org/eclipse/news/4.27/jdt.php#junit-subpackage-support

相关问题