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

获取JUnit 4中当前正在执行的测试的名称

韦翰音
2023-03-14
问题内容

在JUnit 3中,我可以这样获得当前正在运行的测试的名称:

public class MyTest extends TestCase
{
    public void testSomething()
    {
        System.out.println("Current test is " + getName());
        ...
    }
}

它将显示“当前测试是testSomething”。

在JUnit 4中,有什么现成的或简单的方法可以做到这一点吗?

背景:显然,我不想只打印测试的名称。我要加载存储在与测试名称相同的资源中的特定于测试的数据。您知道,约定优于配置以及所有其他内容。


问题答案:

JUnit 4.7似乎使用TestName-Rule添加了此功能。看起来这将为你获取方法名称:

import org.junit.Rule;

public class NameRuleTest {
    @Rule public TestName name = new TestName();

    @Test public void testA() {
        assertEquals("testA", name.getMethodName());
    }

    @Test public void testB() {
        assertEquals("testB", name.getMethodName());
    }
}


 类似资料:
  • 问题内容: 我如何获取 当前正在运行的测试用例名称 ,而在testsuite集合中却有16个测试用例。测试按顺序执行(按照将测试添加到testSuite集合的顺序)。当我将所有测试添加到testSuite集合中时,我可以预览该对象,但是如何在测试运行时获取当前正在执行的测试。也许某些变量保存了此信息? 例: 使用Selenium-RC框架执行测试。 问题答案: unittest.TestCase.

  • 问题内容: 有没有办法获取Java中当前正在执行的方法的名称? 问题答案: 从技术上讲这将起作用… 但是,将在编译时创建一个新的匿名内部类(例如)。因此,这将为.class每个部署此技巧的方法创建一个文件。另外,在运行时每次调用时都会创建一个其他未使用的对象实例。因此,这可能是可以接受的调试技巧,但确实会带来大量开销。 该技巧的一个优点是返回值可用于检索方法的所有其他信息,包括注释和参数名称。这样

  • 问题内容: 我有调用其他脚本文件的脚本,但是我需要获取该进程中当前正在运行的文件的文件路径。 例如,假设我有三个文件。使用: 来电。 调用。 我怎样才能获得的文件名和路径,从内部代码,而无需从传递这些信息作为参数? (执行将返回原始启动脚本的文件路径,而不是当前文件的路径。) 问题答案: p1.py: p2.py:

  • 主要内容:1 概述,2 测试执行顺序,3 例子,4 结论1 概述 在本指南中,我们将学习如何按顺序执行测试。默认情况下,JUnit以任何顺序执行测试。 2 测试执行顺序 要更改测试执行顺序,只需使用@FixMethodOrder注释测试类并指定可用的MethodSorters之一: @FixMethodOrder(MethodSorters.JVM):按照JVM返回的顺序保留测试方法。此顺序可能因运行而异。 @FixMethodOrder(Method

  • 问题内容: 我正在通过一些测试来创建用户。由于它连接到后端并创建真实用户,因此我需要固定装置。我当时正在考虑使用浏览器名称来创建唯一用户。但是,事实证明很难做到这一点。 任何人都可以指出正确的方向吗? 问题答案: duck_debugging另一种情况另一种情况:) 答案实际上很简单。 在我的onPrepare函数中,我添加了以下函数,它可以完美运行。 我可以使用来访问测试中的名称。

  • 我想使用testng在beforethod和AfterMethod中打印当前正在执行的测试方法的名称。例如: