如何启动CPPUNIT测试
How to launch cppunit test?
我试图第一次运行cppunit,但我会出现以下错误。我已经安装了,但是我认为 cppunit-config 有人有任何想法解决这个问题吗?我已经看到了关于尼布斯的报告错误,但我不知道如何从终端运行cppunit-config?
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)
遇到了相同的问题,并在网络中进行了一些挖掘后找到了解决方案。就我而言,我的cppunit是由小牛上安装的,而Netbeans版本为8.1。就像OP提到的那样,Netbeans抱怨/bin/sh: cppunit-config: command not found
即使我可以从终端运行cppunit-config
。这消除了与路径相关的问题。从终端运行NetBean是一个临时修复程序,但我发现为此有一个真正的修复。
步骤:
- 在
Test Files
文件夹下的项目视图中,右键单击测试文件夹,然后转到Properties
。(如果您还没有测试文件夹,请右键单击Test Files
并说new CppUnit Test
) - 转到
linker
部分,然后单击Libraries
- 您会看到一些以
cppunit-
开头的行,将它们全部删除 -
Add Option
,选择Other Option
,然后输入-lcunit
- 单击
Ok
。
现在,右键单击测试文件夹,然后Test
命令应正确运行测试。
相关文章:
- 尽管测试成功,CppUnit测试核心仍被丢弃.为什么
- 在 CppUnit 中测试中止断言失败
- CppUnit 测试与 Qt 5.9 一起挂起
- cppUnit:针对多个测试方法执行一次的设置函数
- CPPUNIT:我们真的每个测试需要一个功能吗?
- 如何启动CPPUNIT测试
- 使用单元测试 (cppunit) 中另一个文件中定义的结构时出错
- CPPUNIT创建一个简单的测试
- 了解cppUnit测试
- CPPUNIT:公共基础测试
- 在谷歌测试或cppunit下移动参数化测试
- Netbeans Cpp编译和运行项目,但不能使用cppunit进行测试
- 如何使用cppunit显示测试方法名称
- 如何编写CPPUnit测试
- 在现有项目中创建CPPUnit测试需要哪些.cpp和.h文件
- CppUnit,很简单的测试代码崩溃了,为什么
- 第一个CppUnit测试:对CppUnit::SourceLine::SourceLine的未定义引用
- cppUnit在启动每个单元测试时是否使用fork() ?
- 用CppUnit测试静态函数
- 单元测试vc++ MFC应用程序使用CPPUNIT或GTEST