test: Save logs during testing and add them to version control
This change removes the ConsoleLogger from the TestSuiteFixture and registers a PlainFileLogger instead, which saves logs during testing into the file bin/test/data/log/test_log.txt.
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
Graph.cpp removeEdge() ERROR: Can't remove member edge, without removing the child node.
|
||||
TextAccess.cpp checkIndexIntervalInRange() WARNING: Index 'firstLine' has to be lower or equal index 'lastLine', is 2 > 1
|
||||
TextAccess.cpp checkIndexInRange() WARNING: Tried to access index 9. Maximum index is 7
|
||||
TextAccess.cpp checkIndexInRange() WARNING: Tried to access index 9. Maximum index is 7
|
||||
TextAccess.cpp getLine() WARNING: Line numbers start with one, is 0
|
||||
TextAccess.cpp getLines() WARNING: Line numbers start with one, is 0
|
||||
@@ -15,4 +15,7 @@ rm -rf bin/lib/Release
|
||||
rm -rf bin/test/Debug
|
||||
rm -rf bin/test/Release
|
||||
|
||||
# Remove log files
|
||||
find bin/test/data/log -type f -name 'log*' -delete
|
||||
|
||||
echo -e $SUCCESS "clean complete"
|
||||
|
||||
@@ -94,6 +94,8 @@ add_files(
|
||||
gui/WidgetWrapper.cpp
|
||||
gui/WidgetWrapper.h
|
||||
|
||||
utility/logging/PlainFileLogger.cpp
|
||||
utility/logging/PlainFileLogger.h
|
||||
utility/logging/ConsoleLogger.cpp
|
||||
utility/logging/ConsoleLogger.h
|
||||
utility/logging/FileLogger.cpp
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
#include "utility/logging/PlainFileLogger.h"
|
||||
|
||||
#include <fstream>
|
||||
#include <sstream>
|
||||
|
||||
PlainFileLogger::PlainFileLogger(std::string filePath)
|
||||
: Logger("PlainFileLogger")
|
||||
, m_filePath(filePath)
|
||||
{
|
||||
std::ofstream fileStream;
|
||||
fileStream.open(m_filePath, std::ios::trunc);
|
||||
fileStream.close();
|
||||
}
|
||||
|
||||
PlainFileLogger::~PlainFileLogger()
|
||||
{
|
||||
}
|
||||
|
||||
void PlainFileLogger::logString(std::string str)
|
||||
{
|
||||
std::ofstream fileStream;
|
||||
fileStream.open(m_filePath, std::ios::app);
|
||||
fileStream << str;
|
||||
fileStream.close();
|
||||
}
|
||||
|
||||
void PlainFileLogger::logInfo(const LogMessage& message)
|
||||
{
|
||||
logMessage("INFO", message);
|
||||
}
|
||||
|
||||
void PlainFileLogger::logWarning(const LogMessage& message)
|
||||
{
|
||||
logMessage("WARNING", message);
|
||||
}
|
||||
|
||||
void PlainFileLogger::logError(const LogMessage& message)
|
||||
{
|
||||
logMessage("ERROR", message);
|
||||
}
|
||||
|
||||
void PlainFileLogger::logMessage(const std::string& type, const LogMessage& message)
|
||||
{
|
||||
std::stringstream ss;
|
||||
ss << message.getFileName() << " " << message.functionName << "() " << type << ": " << message.message << std::endl;
|
||||
logString(ss.str());
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
#ifndef PLAIN_FILE_LOGGER_H
|
||||
#define PLAIN_FILE_LOGGER_H
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "utility/logging/Logger.h"
|
||||
#include "utility/logging/LogMessage.h"
|
||||
|
||||
class PlainFileLogger: public Logger
|
||||
{
|
||||
public:
|
||||
PlainFileLogger(std::string filePath);
|
||||
virtual ~PlainFileLogger();
|
||||
|
||||
void logString(std::string str);
|
||||
|
||||
virtual void logInfo(const LogMessage& message);
|
||||
virtual void logWarning(const LogMessage& message);
|
||||
virtual void logError(const LogMessage& message);
|
||||
|
||||
private:
|
||||
void logMessage(const std::string& type, const LogMessage& message);
|
||||
|
||||
std::string m_filePath;
|
||||
};
|
||||
|
||||
#endif // PLAIN_FILE_LOGGER_H
|
||||
@@ -1,9 +1,11 @@
|
||||
#include "TestSuiteFixture.h"
|
||||
|
||||
#include "utility/logging/ConsoleLogger.h"
|
||||
#include <sstream>
|
||||
|
||||
#include "utility/logging/FileLogger.h"
|
||||
#include "utility/logging/logging.h"
|
||||
#include "utility/logging/LogManager.h"
|
||||
#include "utility/logging/PlainFileLogger.h"
|
||||
|
||||
TestSuiteFixture::TestSuiteFixture()
|
||||
{
|
||||
@@ -13,15 +15,15 @@ TestSuiteFixture::~TestSuiteFixture()
|
||||
{
|
||||
}
|
||||
|
||||
bool TestSuiteFixture::setUp()
|
||||
bool TestSuiteFixture::setUpWorld()
|
||||
{
|
||||
LogManager::getInstance()->addLogger(std::make_shared<ConsoleLogger>());
|
||||
LogManager::getInstance()->addLogger(std::make_shared<PlainFileLogger>("data/log/test_log.txt"));
|
||||
LogManager::getInstance()->addLogger(std::make_shared<FileLogger>());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TestSuiteFixture::tearDown()
|
||||
bool TestSuiteFixture::tearDownWorld()
|
||||
{
|
||||
LogManager::destroyInstance();
|
||||
|
||||
|
||||
@@ -9,8 +9,8 @@ public:
|
||||
TestSuiteFixture();
|
||||
virtual ~TestSuiteFixture();
|
||||
|
||||
virtual bool setUp();
|
||||
virtual bool tearDown();
|
||||
virtual bool setUpWorld();
|
||||
virtual bool tearDownWorld();
|
||||
};
|
||||
|
||||
// According to the CxxTest Documentation global fixtures are actually supposed to be implemented as global static instances
|
||||
|
||||
Reference in New Issue
Block a user