stuff-from-scratch/test/test_utils/TestCaseRunner.h
2023-01-05 13:16:52 +00:00

35 lines
733 B
C++

#pragma once
#include "TestCase.h"
#include <vector>
#include <string>
class GuiApplication;
class TestCaseRunner
{
public:
TestCaseRunner();
static TestCaseRunner& getInstance();
~TestCaseRunner();
GuiApplication* getTestApplication();
void addTestCase(const std::string& label, const std::string& tag, TestCase::TestCaseFunction func);
void markTestFailure(const std::string& line);
bool run(const std::vector<std::string>& args);
void setTestApplication(GuiApplication* app);
private:
GuiApplication* mTestApplication{ nullptr };
std::vector<std::string> mFailingTests;
static bool sLastTestFailed;
static std::string sFailureLine;
std::vector<TestCase*> mCases;
};