0

私はこれでぐるぐる回っています。基本的に、1 台のマシンに Jenkins があり、別の iOS ビルド サーバーとして Mac サーバーがあります。単体テストを実行し、Mac Mini で Jenkins からコード カバレッジを実行できるようにする必要があります。テストを実行するスクリプトがあり、マシン自体のコマンドラインから実行すると完全に機能します。問題は、Jenkins から実行しようとすると、実際のテストが実行されないことです。ビルドプロセスを実行し、実際にテストを実行せずに「テストが成功しました」と報告します。基本的に、マシンに ssh するときにテストを実行できる必要があります。

gcovr を使用して、単体テスト カバレッジ用の xml ファイルを作成しています。実行しているように見えるxctoolの使用を検討しましたが、gcnoではなくgcdaファイルのみを作成するため、うまく機能しません。

この時点で頭を壁にぶつけているので、助けていただければ幸いです。

私が実行しているコマンド: xcodebuild -workspace MyProject.xcworkspace -scheme MyProject -sdk iphonesimulator test

マシンにログインしているときにコマンドラインから実行すると問題なく実行されますが、ssh でログインするとテストは実行されません。

4

2 に答える 2

0

ユーザーの GUI から開始されたプロセスから xcode 単体テストを実行する必要があるようです (たとえば、~/Library/LaunchAgents エージェント/デーモンを使用)。

サーバーまたはデーモン (GUI / ターミナルから、または LaunchControl を使用して開始) を使用して、単体テストを実行できます。これはまさにこれを行う Go で書かれたサーバーです。

于 2014-09-15T19:44:24.987 に答える
0

問題は、シミュレーターを 2 つの異なる場所から引き上げていたことです。したがって、スクリプトをビルド マシンで直接実行すると、シミュレーターが起動します。その後、ssh 経由でスクリプトを実行しようとすると、既に起動してロックされているシミュレーターを起動しようとします。

解決?スクリプトの先頭で、実行中のシミュレーターをすべて強制終了します。

pkill -i simulator

エレガントではないかもしれませんが、うまくいきます。

于 2013-11-20T03:45:41.720 に答える