将输出直接从 makefile 打印到 .txt 文件

时间:2021-05-11 21:01:01

标签: c++ testing makefile doctest

我有一个 test.cpp 文件来测试我的类,然后我有一个 Makefile 用于运行我的程序和运行我的测试(运行测试后,结果应该写入.txt 文件以及终端)。这是我的test.cpp

#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
#include "doctest.h"
#include "Weather.h"

using namespace std;

TEST_CASE("Random test") {
    Weather testt(10, 1, 0, "sunny");
    CHECK(testt.getAirTemperature() == 10);
}

这是我的Makefile

CC = g++
CFLAGS = -c -Wall
TEST_TARGET = test.exe
TEST_OUT = test_out.txt

all: program

program: main.o Weather.o myException.o
    $(CC) main.o Weather.o myException.o -o program

main.o: main.cpp
    $(CC) $(CFLAGS) main.cpp

Weather.o: Weather.cpp
    $(CC) $(CFLAGS) Weather.cpp

myException.o: myException.cpp
    $(CC) $(CFLAGS) myException.cpp

build_test: test.o Weather.o myException.o
    $(CC) test.o Weather.o myException.o -o $(TEST_TARGET)

run_test: $(TEST_TARGET)
    $(TEST_TARGET) >> $(TEST_OUT) && $(TEST_TARGET)

test.o: test.cpp
    $(CC) $(CFLAGS) test.cpp

rebuild: clean all

clean:
    rm -rf *o program

您可以忽略 makefile 中的所有内容,只需查看 build_test run_testtest.o 因为这是我用于此任务的 3 个东西。在终端中,当我编写 make build_test 时,成功创建了一个可执行文件,没有任何问题,尽管当我转到 make run_test 时,我得到了 test.exe >> test_out.txt && test.exe. make: *** [Makefile:24: run_test] Error 1。所以它说问题出在第 24 行,也就是 $(TEST_TARGET) >> $(TEST_OUT) && $(TEST_TARGET)。我的问题是,我是否知道应该如何将其打印到文件和终端中?或者我应该如何输出 doctest.h 提供给我的结果。

0 个答案:

没有答案
相关问题