ゴール
私たちの目標は、継続的インテグレーション環境内で単体テストを実行することです(Jenkins)
(すべての質問で、何を達成しようとしているのかを正確に述べることが不可欠だと思います。問題は実際には非常に異なる方法で解決できるかもしれません)
更新:「なぜこれをしたいのですか?」の詳細
まず、特定の自社開発ハードウェアについて話します。そして、継続的インテグレーションテストで、すべての開発者に通知せずにボックスの動作を変更したかどうかを教えてもらいたいと思います(はい、はい、そうです、そのようなことは決して起こりません…)
次に、接続の一部(すべてではない)がデフォルトで無効な証明書を使用しているため、証明書の有効性をチェックするコード(SecTrustEvaluate
など)があります。もちろん、理想的には、私たちのテストはそのコードもテストします。しかし、それは質問するには多すぎるようです。
第三に:まあ、私が本物の取引をすることができるのなら、なぜ私は何かをあざける必要がありますか?IDEには問題はありませんが、なぜコマンドラインが必要なのですか。
そして、予測可能性が必要な場合はYES
、すべてのテストに戻ります;)(そして、人々がそうするのを見てきました)。いいえ、コードが実際に実際にデバイスで機能するかどうかを知りたいです。それはある種の変な欲望ですか?
これまでに解決された問題
コマンドラインからテストを実行するのはかなり簡単に聞こえますが、
xcodebuild -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO clean test
醜いエラーが発生します:
unsupported build action 'test'
そこで、Webを検索して、コマンドラインからのOCUnitテストの実行に関するこの記事を見つけました。
すべての手順を実行し、次のようにコマンドラインからテストを実行できます。
xcodebuild -scheme CITests -sdk iphonesimulator TEST_AFTER_BUILD=YES ONLY_ACTIVE_ARCH=NO clean build
残りの問題
ただし、「このサーバーの証明書が無効です」ため、SSLサーバーへのNSURLConnectionは失敗します。コマンドラインからテストを実行するときにキーチェーンの問題について聞いたことがありますが、これは本当ですか?SSL接続は拒否されますか?
再現するには
https://github.com/below/SSLTestDemoでサンプルを入手してください。それを開き、Xcode独自のTest⌘Uコマンドを使用してサンプルテストを実行します。テストは成功するはずです。
次に、コマンドラインでテストを実行します。
xcodebuild -scheme CITests -sdk iphonesimulator TEST_AFTER_BUILD=YES ONLY_ACTIVE_ARCH=NO clean build
「このサーバーの証明書が無効です」ため、テストは失敗します。エラー。
ポインタはありますか?
- 私はそれを間違っていますか?
- これは本物のバグですか?
- もしそうなら、workaroungsはありますか?
どんな入力でも大歓迎です!