2014-03-06 35 views
1

我想第一次運行cppunit,但我得到以下錯誤。我已經安裝,但我認爲有一個問題,cppunit配置任何人有一個想法如何解決這個問題? 我看到了nebeans上的一個報告錯誤,但我不知道如何從終端運行cppunit-config?如何啓動cppunit測試?

https://netbeans.org/bugzilla/show_bug.cgi?id=230617

"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf 
"/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/GNU-MacOSX/exercise1 
make[2]: `dist/Debug/GNU-MacOSX/exercise1' is up to date. 
"/usr/bin/make" -f nbproject/Makefile-Debug.mk SUBPROJECTS= .build-tests-conf 
"/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/GNU-MacOSX/exercise1 
make[2]: `dist/Debug/GNU-MacOSX/exercise1' is up to date. 
mkdir -p build/Debug/GNU-MacOSX/tests/TestFiles 
g++  -o build/Debug/GNU-MacOSX/tests/TestFiles/f1 build/Debug/GNU-MacOSX/tests/tests/newtestclass.o build/Debug/GNU-MacOSX/tests/tests/newtestrunner.o build/Debug/GNU-MacOSX/main_nomain.o `cppunit-config --libs` 
/bin/sh: cppunit-config: command not found 
Undefined symbols for architecture x86_64: 
    "CppUnit::TestResult::addListener(CppUnit::TestListener*)", referenced from: 
     _main in newtestrunner.o 
    "CppUnit::TestResult::TestResult(CppUnit::SynchronizedObject::SynchronizationObject*)", referenced from: 
     _main in newtestrunner.o 
    "CppUnit::TestResult::~TestResult()", referenced from: 
     _main in newtestrunner.o 
    "CppUnit::TestRunner::run(CppUnit::TestResult&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from: 
     _main in newtestrunner.o 
    "CppUnit::TestRunner::addTest(CppUnit::Test*)", referenced from: 
     _main in newtestrunner.o 
    "CppUnit::TestRunner::TestRunner()", referenced from: 
     _main in newtestrunner.o 
    "CppUnit::TestRunner::~TestRunner()", referenced from: 
     _main in newtestrunner.o 
    "CppUnit::CompilerOutputter::write()", referenced from: 
     _main in newtestrunner.o 
    "CppUnit::CompilerOutputter::CompilerOutputter(CppUnit::TestResultCollector*, std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from: 
     _main in newtestrunner.o 
    "CppUnit::CompilerOutputter::~CompilerOutputter()", referenced from: 
     _main in newtestrunner.o 
    "CppUnit::TestFactoryRegistry::getRegistry(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from: 
     CppUnit::AutoRegisterSuite<newtestclass>::AutoRegisterSuite()in newtestclass.o 
     _main in newtestrunner.o 
    "CppUnit::TestFactoryRegistry::registerFactory(CppUnit::TestFactory*)", referenced from: 
     CppUnit::AutoRegisterSuite<newtestclass>::AutoRegisterSuite()in newtestclass.o 
    "CppUnit::TestFactoryRegistry::unregisterFactory(CppUnit::TestFactory*)", referenced from: 
     CppUnit::AutoRegisterSuite<newtestclass>::~AutoRegisterSuite()in newtestclass.o 
    "CppUnit::TestFactoryRegistry::isValid()", referenced from: 
     CppUnit::AutoRegisterSuite<newtestclass>::~AutoRegisterSuite()in newtestclass.o 
    "CppUnit::TestResultCollector::TestResultCollector(CppUnit::SynchronizedObject::SynchronizationObject*)", referenced from: 
     _main in newtestrunner.o 
    "CppUnit::TestResultCollector::~TestResultCollector()", referenced from: 
     _main in newtestrunner.o 
    "CppUnit::BriefTestProgressListener::BriefTestProgressListener()", referenced from: 
     _main in newtestrunner.o 
    "CppUnit::BriefTestProgressListener::~BriefTestProgressListener()", referenced from: 
     _main in newtestrunner.o 
    "CppUnit::TestSuiteBuilderContextBase::addTest(CppUnit::Test*)", referenced from: 
     newtestclass::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&)   in newtestclass.o 
    "CppUnit::TestSuiteBuilderContextBase::TestSuiteBuilderContextBase(CppUnit::TestSuite&, CppUnit::TestNamer const&, CppUnit::TestFixtureFactory&)", referenced from: 
     newtestclass::suite()  in newtestclass.o 
    "CppUnit::TestSuiteBuilderContextBase::~TestSuiteBuilderContextBase()", referenced from: 
     newtestclass::suite()  in newtestclass.o 
    "CppUnit::TestSuiteBuilderContextBase::~TestSuiteBuilderContextBase()", referenced from: 
     CppUnit::TestSuiteBuilderContext<newtestclass>::~TestSuiteBuilderContext()in newtestclass.o 
     CppUnit::TestSuiteBuilderContext<newtestclass>::~TestSuiteBuilderContext()in newtestclass.o 
    "CppUnit::TestCase::run(CppUnit::TestResult*)", referenced from: 
     vtable for CppUnit::TestCaller<newtestclass>in newtestclass.o 
    "CppUnit::TestCase::TestCase(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from: 
     CppUnit::TestCaller<newtestclass>::TestCaller(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, void (newtestclass::*)(), newtestclass*)in newtestclass.o 
    "CppUnit::TestCase::~TestCase()", referenced from: 
     CppUnit::TestCaller<newtestclass>::~TestCaller()in newtestclass.o 
     CppUnit::TestCaller<newtestclass>::~TestCaller()in newtestclass.o 
    "CppUnit::TestNamer::TestNamer(std::type_info const&)", referenced from: 
     newtestclass::getTestNamer__()  in newtestclass.o 
    "CppUnit::TestNamer::~TestNamer()", referenced from: 
     ___tcf_0 in newtestclass.o 
    "CppUnit::TestSuite::TestSuite(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)", referenced from: 
     newtestclass::suite()  in newtestclass.o 
    "CppUnit::TestSuccessListener::wasSuccessful() const", referenced from: 
     _main in newtestrunner.o 
    "CppUnit::TestSuiteBuilderContextBase::getTestNameFor(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const", referenced from: 
     newtestclass::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&)   in newtestclass.o 
    "CppUnit::TestSuiteBuilderContextBase::makeTestFixture() const", referenced from: 
     CppUnit::TestSuiteBuilderContext<newtestclass>::makeFixture() const in newtestclass.o 
    "CppUnit::Test::findTestPath(CppUnit::Test const*, CppUnit::TestPath&) const", referenced from: 
     vtable for CppUnit::TestCaller<newtestclass>in newtestclass.o 
    "CppUnit::Test::findTestPath(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, CppUnit::TestPath&) const", referenced from: 
     vtable for CppUnit::TestCaller<newtestclass>in newtestclass.o 
    "CppUnit::Test::getChildTestAt(int) const", referenced from: 
     vtable for CppUnit::TestCaller<newtestclass>in newtestclass.o 
    "CppUnit::Test::resolveTestPath(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const", referenced from: 
     vtable for CppUnit::TestCaller<newtestclass>in newtestclass.o 
    "CppUnit::Test::checkIsValidIndex(int) const", referenced from: 
     vtable for CppUnit::TestCaller<newtestclass>in newtestclass.o 
    "CppUnit::Test::findTest(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const", referenced from: 
     vtable for CppUnit::TestCaller<newtestclass>in newtestclass.o 
    "CppUnit::TestCase::getName() const", referenced from: 
     vtable for CppUnit::TestCaller<newtestclass>in newtestclass.o 
    "CppUnit::TestLeaf::countTestCases() const", referenced from: 
     vtable for CppUnit::TestCaller<newtestclass>in newtestclass.o 
    "CppUnit::TestLeaf::doGetChildTestAt(int) const", referenced from: 
     vtable for CppUnit::TestCaller<newtestclass>in newtestclass.o 
    "CppUnit::TestLeaf::getChildTestCount() const", referenced from: 
     vtable for CppUnit::TestCaller<newtestclass>in newtestclass.o 
    "typeinfo for CppUnit::TestSuiteBuilderContextBase", referenced from: 
     typeinfo for CppUnit::TestSuiteBuilderContext<newtestclass>in newtestclass.o 
    "typeinfo for CppUnit::TestCase", referenced from: 
     typeinfo for CppUnit::TestCaller<newtestclass>in newtestclass.o 
    "vtable for CppUnit::TestSuiteBuilderContextBase", referenced from: 
     CppUnit::TestSuiteBuilderContextBase::TestSuiteBuilderContextBase(CppUnit::TestSuiteBuilderContextBase const&)in newtestclass.o 
    NOTE: a missing vtable usually means the first non-inline virtual member function has no definition. 
ld: symbol(s) not found for architecture x86_64 
collect2: ld returned 1 exit status 
make[1]: *** [build/Debug/GNU-MacOSX/tests/TestFiles/f1] Error 1 
make: *** [.build-tests-impl] Error 2 


BUILD TESTS FAILED (exit value 2, total time: 236ms) 
+0

我在這裏找到了答案:https://www.youtube.com/watch?v=OJLG44eSG6U – Bernard

回答

2

遇到同樣的問題,發現在網絡一些挖後的溶液。在我的情況下,我在小牛隊用Homebrew安裝了cppunit,而Netbeans版本是8.1。就像OP提到的那樣,即使我可以從終端運行cppunit-config,Netbeans也會抱怨/bin/sh: cppunit-config: command not found。這消除了PATH相關的問題。從終端運行NetBeans是一個臨時修復,但我發現that有一個真正的解決方案。

步驟:

  1. 在項目視圖Test Files文件夾下,在測試文件夾右鍵單擊並轉到Properties。 (如果你沒有一個測試文件夾的是,在Test Files右鍵單擊並說new CppUnit Test
  2. 轉到linker部分,然後點擊Libraries
  3. 你會看到開始cppunit-一些線條,將它們全部刪除
  4. Add Option,請選擇Other Option並輸入-lcunit
  5. 點擊Ok

現在,右鍵單擊測試文件夾,然後Test命令應該正確運行測試。

+0

嗨,我一直在關注這個試圖讓我的Netbeans設置與cppunit一起工作,我遵循了所有的步驟它沒有工作,我在步驟4中將-lcunit更改爲-lcppunit並且工作正常。 cUnit不是一個不同的庫嗎?這是你的錯字嗎?還是我錯過了什麼?謝謝 – Scriptable

+0

@Scriptable -lcppunit是我的第一選擇,但不能得到它的工作。這可能與我的本地相關。我很高興如果你能得到它的工作。 – amertkara