我有一个junit测试,要求用户确认先决条件状态,因此在测试进行之前会提示用户。这适用于涉及无法模拟的外部系统的集成测试。通过Eclipse IDE运行测试时,这可以正常工作,但不能通过Gradle运行。
我知道这是因为Gradle设置了一个空的标准输入。根据此问题,可以针对运行目标解决此问题:Console application with Java and 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();
}
上面的代码在Gradle运行时会抛出java.util.NoSuchElementException,因为没有要读取的输入。