Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用文件中的值自动化eclipse控制台输入_Java_Eclipse_Automation_Qa - Fatal编程技术网

Java 使用文件中的值自动化eclipse控制台输入

Java 使用文件中的值自动化eclipse控制台输入,java,eclipse,automation,qa,Java,Eclipse,Automation,Qa,我目前有一个问题,我需要测试数千个控制台输入,以便为项目中的另一个团队创建日志。该项目正在eclipse(java)中开发 基本上,流程如下所示: 1) 程序在控制台上加载并输出一些文本 2) 用户输入文本(有时取决于程序之前打印的内容) 3) 程序输出更多文本,准备再次输入 基本上,我需要编写/使用一个脚本,允许我将所有输入放入某种文件中,并让它运行以创建此日志文件 这可以做到吗?你有什么建议吗?一般来说,解决这类问题的一个好方法是抽象输入和输出。例如,让您的控制类接受InputStream和

我目前有一个问题,我需要测试数千个控制台输入,以便为项目中的另一个团队创建日志。该项目正在eclipse(java)中开发

基本上,流程如下所示:

1) 程序在控制台上加载并输出一些文本

2) 用户输入文本(有时取决于程序之前打印的内容)

3) 程序输出更多文本,准备再次输入

基本上,我需要编写/使用一个脚本,允许我将所有输入放入某种文件中,并让它运行以创建此日志文件


这可以做到吗?你有什么建议吗?

一般来说,解决这类问题的一个好方法是抽象输入和输出。例如,让您的控制类接受InputStream和OutputStream作为其构造函数中的参数

在实际程序的main方法中,分别使用System.In和System.out创建该控制器的实例。对于“批处理”程序,您可以提供您喜欢的任何其他InputStream和OutputStream

关于user1291492的评论:总是建议进行单元测试,但是看起来您的问题实际上与测试无关,而是修改您的程序以充当某种中介,这不是一回事

如果您真的需要一个快速而肮脏的解决方案(我建议不要招致技术债务),在*NIX系统上,您可以尝试以下方法:

cat * | java -jar yourprogram.jar > logoutput.txt

假设您将所有输入文件复制到一个目录中。cat将连接目录中的所有文件,然后通过管道将标准输入(通过“|”)传输到您的程序,程序的标准输出重定向到“logoutput.txt(通过“>”)。

可行但不容易。也许您可以指定一些junit测试,然后返回并询问这是否是一个可能的替代方案?