接受用户输入以通过 Gradle 运行 junit 测试

jsa*_*ven 5 java junit gradle

我有一个 junit 测试,它需要用户确认先决条件状态,因此在测试进行之前会提示用户。这是用于涉及无法模拟的外部系统的集成测试。这在通过 Eclipse IDE 运行测试时工作正常,但不能通过 Gradle 运行。

我知道这是因为 Gradle 设置了一个空的标准输入。这可以根据以下问题针对运行目标解决:带有 Java 和 gradle 的控制台应用程序。但是,我一直无法为测试目标找到等效的解决方案。

有没有办法接收用户输入以通过 Gradle 运行 junit 测试?

下面给出了我正在使用的测试类的简化版本:

@Test
public void testDigitalRead()
{
    Scanner in = new Scanner(System.in);

    out.println("Press enter to continue.");
    in.nextLine();
    // perform testing logic

    in.close();
}
Run Code Online (Sandbox Code Playgroud)

上面的代码在通过 Gradle 运行时将抛出 java.util.NoSuchElementException ,因为没有要读取的输入。