먼저 만들어? 나는에 "예상 선언을 "와 같은 오류를 얻고있다는 CppUnit을 간단한 테스트
#include "ParserUnitTests.h"
CPPUNIT_TEST_SUITE(ParserUnitTests);
void ParserUnitTests::testCanDoUnitTest() {
CPPUNIT_ASSERT_EQUAL(1, 2, "Expected failure");
}
CPPUNIT_TEST(ParserUnitTests::testCanDoUnitTest);
:
# ParserUnitTests.h
#include <cppunit\TestFixture.h>;
#include <cppunit\extensions\HelperMacros.h>
class ParserUnitTests : public CppUnit::TestFixture {
public:
void testCanDoUnitTest();
};
및 해당 CPP :
그래서 지금은 그냥 아주 간단한 클래스를 생성 CPPUNIT_TEST_SUITE
라인 ... 내가 어디에서 왔는지와 매우 다른 것처럼 보입니다 ... 더 많은 현대 언어 ... JS/파이썬과 같습니다 ... 여기가 더 명백하게 보입니까? CppUnit에게 실행할 클래스/테스트 케이스를 알려줘야합니까? 좋아,하지만 오류의 원인은 무엇입니까?
CppUnit 요리 책의 코드는 주로 스 니펫이며 가져 오기가 무엇이고 어디로 가야하는지 파악하기가 쉽습니다. 아마도 누군가 나를 안내 할 수 있을까요?
#include "MyClass.hpp"
struct callable
{
void operator()()
{
}
};
class MyClassTest : public CppUnit::TestCase
{
public:
void testEquality()
{
CPPUNIT_ASSERT(1 == 1);
}
void testCreation()
{
MyClass<callable>* tp = new MyClass<callable>(1);
CPPUNIT_ASSERT(tp->done() == true);
delete tp;
}
static CppUnit::Test* suite()
{
CppUnit::TestSuite* suiteOfTests = new CppUnit::TestSuite("MyClassTest");
suiteOfTests->addTest(new CppUnit::TestCaller<MyClassTest>("testEquality",
&ThreadPoolTest::testEquality));
return suiteOfTests;
}
};
그리고 :
#include <cstdlib>
#include <iostream>
#include <limits>
#include <cppunit/ui/text/TestRunner.h>
#include <cppunit/XmlOutputter.h>
#include <cppunit/TextOutputter.h>
#include <cppunit/TestResult.h>
#include <cppunit/TestResultCollector.h>
#include "MyClass.hpp"
int main(int argc, char** argv)
{
CppUnit::TextUi::TestRunner runner;
runner.addTest(MyClass::suite());
runner.run();
return (EXIT_SUCCESS);
}
일부 코드가 메인에서 누락되어 있지만 중요한 비트를 볼 수 있도록 내가 그것을 단순화
컴파일러가 상수 앞에 parserUnitTests 함수의 선언을 원한다면 const보다 위에 함수를 이동하고 어떤 일이 발생하는지 확인하십시오. –
포함 경로의 슬래시가 거꾸로 표시됩니다. – martinkunev