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

JUnit参数化测试:如何仅从IntelliJ / Eclipse运行1个特定测试?

夏侯渊
2023-03-14
问题内容

我有一个@Parameterizedjunit测试,它产生了50个测试:

@RunWith(Parameterized.class)
public class NurseRosteringSolveAllTurtleTest ... {

    @Parameterized.Parameters(name = "{index}: {0}")
    public static Collection<Object[]> getSolutionFilesAsParameters() {
        return ... // returns 50 Files.
    }

    public NurseRosteringSolveAllTurtleTest(File unsolvedDataFile) {
        ...
    }

    ...

    @Test
    public void solveDataFile() {
        ...
    }

}

运行它需要一个小时(并且不可能缩短时间,它们是集成测试)。测试28失败。

如何单独运行测试28,而不运行其他49个测试?只需更改-DIntelliJ(或Eclipse)运行配置中的或类似内容,而无需更改实际代码。


问题答案:

Eclipse现在(从Mars M4版本开始)不仅可以运行Parameterized测试类中的单个测试,还可以运行任何类型的子树。

可以是:

  • @Parameterized方法返回的单个数据集的所有方法
  • 单个@Test方法的所有数据集

而且,正如已经提到的,还可以通过在启动配置文件中的“方法”文本中输入测试名称来指定测试。将存在一个标记,指示该方法不存在,但无论如何该测试都将运行。

有关详细信息,请参见此博客文章。



 类似资料:
  • 问题内容: 在Eclipse和Ant中运行Junit测试时,我遇到了差异。这是场景: 一切都按照Eclipse的预期运行,但是,当我运行了一个Ant构建脚本时,我无法获得准确的Junit报告。我对测试运行器和测试用例进行了几处更改(简而言之,我向所有测试用例中添加了Test suite()方法),这返回了一个新的Junit4TestAdapter,并让我们的自定义运行器执行RunNotifier.

  • 参数化测试可以将不同的数据输入到测试中。不过,我创建了一个示例计算器,希望为其创建参数化测试。但是,我发现您只能为单个测试创建一组参数化数据。 我已经创建了参数化测试,用于添加两个数字,得到预期的结果。由于预期结果会有所不同,因此该数据将不适用于减法运算。 有没有可能为每个加、减、乘、除测试提供参数化数据? 非常感谢您的建议,

  • 如何使用JUnit测试在我现有的项目中运行JMH基准测试?官方留档建议制作一个单独的项目,使用Maven阴影插件,并在方法中启动JMH。这是必要的吗?为什么推荐它?

  • 我有一个junit测试testArchive()。Junit测试测试存档文件并将url作为字符串返回给它的archive()方法。URL被定义为Junit测试类中的实例变量。 我正在为sendEmail()编写另一个Junit测试,它通过电子邮件发送URL。但是URL被定义为一个类变量,结果却是空的 你能让我知道我需要如何修正我的Junit测试发送电子邮件吗? 谢谢你

  • 从很久以前的某个版本开始(大约是1.b.35版),Nutz 就偷偷的加入了 maven 的 pom.xml 文件, 极好的解决了测试时需要依赖其他 jar 包的问题,接下来就让我们使用 Maven 来进行 JUnit 测试吧。 Nutz 在 Github 的 地址为 https://github.com/nutzam/nutz(Git@OSC镜像 https://git.oschina.net/n

  • 问题内容: 我有大量的测试,大约需要半小时才能运行,并且希望能够并行进行测试。 有没有办法用IntelliJ IDEA 9做到这一点? 问题答案: IDEA仅从版本10开始才了解并行JUnit测试。 有一个跟踪器问题,您可以投票并等待进度:http: //youtrack.jetbrains.net/issue/IDEA-47103 我们计划将其添加到IDEA 10中,但是优先级将取决于票数。