我在本地计算机上有一个项目,我想在服务器(Debian)上运行/调试 cppunit 测试。我用 Netbeans 创建了 .o 文件并将权限设置为可执行。
drwxr-xr-x 2 myName myGroup 4096 18. Dec 08:40 .
drwxr-xr-x 3 myName myGroup 4096 18. Dec 08:40 ..
-rwxr-xr-x 1 myName myGroup 393488 18. Dec 08:40 SisyTestData.o
-rwxr-xr-x 1 myName myGroup 3127 18. Dec 08:40 SisyTestData.o.d
-rwxr-xr-x 1 myName myGroup 30016 18. Dec 08:40 SisyTestDataRunner.o
-rwxr-xr-x 1 myName myGroup 173 18. Dec 08:40 SisyTestDataRunner.o.d
如果我尝试从它所在的目录运行 ./SisyTestDataRunner 我得到
bash: ./SisyTestDataRunner: Datei oder Verzeichnis nicht gefunden
(表示:未找到文件或目录)
如果我尝试运行 ./SisyTestDataRunner.o 我得到
bash: ./SisyTestDataRunner.o: Kann die Datei nicht ausführen.
(意思是:不能执行文件)
SisyTestDataRunner 如下所示:
#include <cppunit/BriefTestProgressListener.h>
#include <cppunit/CompilerOutputter.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/TestResult.h>
#include <cppunit/TestResultCollector.h>
#include <cppunit/TestRunner.h>
int main() {
// Create the event manager and test controller
CPPUNIT_NS::TestResult controller;
// Add a listener that colllects test result
CPPUNIT_NS::TestResultCollector result;
controller.addListener(&result);
// Add a listener that print dots as test run.
CPPUNIT_NS::BriefTestProgressListener progress;
controller.addListener(&progress);
// Add the top suite to the test runner
CPPUNIT_NS::TestRunner runner;
runner.addTest(CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest());
runner.run(controller);
// Print test in a compiler compatible format.
CPPUNIT_NS::CompilerOutputter outputter(&result, CPPUNIT_NS::stdCOut());
outputter.write();
return result.wasSuccessful() ? 0 : 1;
}
文件 SisyTestData 包含一个测试用例,当我在本地计算机上启动它时它可以工作(但它在服务器上运行)。
通常不可能从命令行运行由 netbeans 创建的文件吗?我必须直接在服务器上编译和链接吗?