我想编写一个JUnit测试,确保我们自己实现的XML规范化工作就像“xmllint --c14n”一样。
ProcessBuilder pb = new ProcessBuilder("xmllint", "--c14n", "-");
Process p = pb.start();
如何使用测试文件提供流程并获取与unix管道相似的输出结果&过滤器?
答案 0 :(得分:1)
使用Java 7,您可以使用ProcessBuilder.redirectInput(java.io.File)
方法:
ProcessBuilder pb = new ProcessBuilder( ... );
pb.redirectInput("/path/to/testFile.txt");
Process p = pb.start();
使用Java 6,您需要自己使用I / O流。
import org.apache.commons.io.IOUtils;
FileInputStream testFile = ...
OutputStream processInput = p.getOutputStream();
IOUtils.copy(testFile, processInput);
InputStream processOutput = p.getInputStream();
// Either parse this, or IOUtils.copy it to a file and do a diff of some kind.