我正在寻找VSCode扩展,它可以一键运行我在项目中进行的所有测试。请参阅下面的示例,以了解我的意思。
假设我有几个文件,我想从以下文件运行测试:
例如:
1.Test_input_1.txt
2.Test_output_1.txt(正确的输出为Test_input_1.txt)
3.Test_input_2.txt
4.Test_input_3.txt(Test_input_1.txt的正确输出)
单击运行按钮后,我要对照所有给定的输入和输出检查程序。
欢迎任何建议!
答案 0 :(得分:0)
好像您已经混淆了两种不同的东西。 Quoted example是指使用某些库(例如CTest,Google Test,Boost.Test)编写实际测试的情况。使用该工具,您必须编写用于测试生产代码的单独代码(您可以阅读有关TDD-测试驱动的开发)。
您已经包括了文本文件列表,这些文件可以馈送到标准输入,用于在以下站点上进行测试用例:SPOJ,Hackerrank等。在此站点上可以使用不同的编程语言。为了验证所提供解决方案的正确性,使用了标准输入和输出。这是一种验证几乎所有语言创建的程序的正确性的快速简便方法,但是该解决方案在现实生活中的软件开发中并不十分有用。
AFAIK没有工具可以帮助您快速完成。
通过重构代码,您可以利用其中一种工具,同时使用这些文件。
int problemSolver(std::istream& in, std::ostream& out)
{
}
#ifndef TESTING_MODE
int main()
{
return problemSolver(std::cin, std::cout);
}
#else
TEST(ProblemSolverTest, input1)
{
std::istringstream in{ load_file("Test_input_1.txt") };
std::ostringstream out;
ASSERT_EQ(problemSolver(in, out), 0);
auto result = out.str();
ASSERT_EQ(result, load_file("Test_output_1.txt"));
}
...
#endif // TESTING_MODE