ローカル コンピューターにプロジェクトがあり、サーバー (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 には、ローカル コンピューターで起動したときに機能した 1 つのテストケースが含まれています (サーバー上では実行されました)。
コマンドラインからnetbeansによって作成されたファイルを実行することは一般的に不可能ですか? サーバー上で直接コンパイルしてリンクする必要がありますか?