すべてのドキュメントを検索しましたが、CTEST_CUSTOM_PRE_TEST の使用例が 1 つも見つからないようです。
基本的に、テストを実行する前に、サーバー上でいくつかのコマンドを開始して実行する必要があります。そのため、いくつかの事前テスト手順を追加する必要があります。CTEST_CUSTOM_PRE_TEST の構文は何ですか?
CTEST_CUSTOM_PRE_TEST( ??? ここに何を入れるか ??? ) ADD_TEST(MyTest MyTestCommand)
CTEST_CUSTOM_PRE_TEST は、ctest ダッシュボードを実行するコンテキストで使用される変数です。これは、ctest -S スクリプト自体で直接設定するか、ビルド ツリーの上部にある CTestCustom.cmake ファイルで設定する必要があります。
どちらのファイルでも、値の例は次のようになります。
set(CTEST_CUSTOM_PRE_TEST "perl prepareForTesting.pl -with-this -and-that")
これは、使用しているシステムで実行できるように適切にフォーマットされた単一のコマンド ラインである必要があります。すべてのテストが実行される前に、ctest_test 呼び出し中に 1 回実行されます。同様に、CTEST_CUSTOM_POST_TEST 変数もあり、これも単一のコマンド ラインである必要がありますが、すべてのテストが完了した後に実行されます。
引数をスペース、引用符、バックスラッシュで引用してエスケープするのは難しいかもしれませんが、それも必要ないかもしれません。
私はあなたを指し示すことができるこれの実世界の例を知りませんが、ctestのソースコードを読むことができます... ;-)
set(CTEST_CUSTOM_PRE_TEST ..
cmake の実行中にコピーされるファイルに配置します${CMAKE_BINARY_DIR}/CTestCustom.cmake
。詳細については、https://stackoverflow.com/a/37748933/1017348を参照してください。
ヘッドレス Linux 上の OpenSCAD では、ctest を実行する前に仮想フレームバッファを起動しようとします。ただし、PRE_TEST は使用しません。「cmake」の実行中にビルド ディレクトリに独自の CTestCustom.cmake をビルドします。(私たちは POST_TEST を使用していますが、POST_TEST が壊れている cmake の最近のバージョンがいくつかありました)
ここでコードを見つけることができますhttps://github.com/openscad/openscad/blob/master/tests