我想使用cpp
测试Python
代码。
我有下一个代码和a.exe
文件,我在完成后会得到:
int main() {
std::istream& input_stream = std::cin;
std::ostream& output_stream = std::cout;
Data input_data = ReadData(input_stream);
Data output_data = DoSomethingWithData(input_data);
OutputData(output_data, output_stream);
return 0;
}
我有py
代码:
input_data = ''
for line in sys.stdin:
input_data += line
output_data = do_something_with_data(input_data)
print(output_data)
我想制作py
脚本,它可以为cpp
程序和py
程序提供相同的输入并比较输出。有没有简单的方法呢?
答案 0 :(得分:0)
您可以使用input_data = "some-data"
cpp_output = subprocess.check_output(["a.exe", input_data])
python_output = subprocess.check_output(["python", "test.py", input_data])
assert cpp_output == python_output
(Selenide):
{{1}}
答案 1 :(得分:0)
看起来你正在使用Windows。我会将两个程序的输出重定向到一个文件,然后比较文件。在cmd.exe中:
a.exe > a_output.txt
your_python_script.py > py_output.txt
FC a_output.txt py_output.txt
您可以使用“>”将输出重定向到文本。命令FC(文件比较)检查文件之间的差异。