問題タブ [ocunit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - OCUnit テストの成功/失敗メッセージ/イベントをトラップする方法
継続的インテグレーション サーバー ( TeamCity )で xcodebuild と OCUnit を使用しようとしています。
JetBrains は、TeamCity が解釈できる方法でテスト出力をフォーマットする、boost::test および CppUnit のテスト オブザーバー実装を提供します。OCUnit を使用したい場合は、同様のことを行う必要があります。
OCUnit には SenTestObserver クラスがあるようですが、私はそれがどのように使用されるべきかを正確に知りません。また、OCUnit のホームページにはこの問題に関するドキュメントはありません。
iphone - iPhoneユニットテストがハングします。-applicationDidFinishLaunchingの呼び出しに失敗しました:
OCUnit上でGoogleToolkitforMacフレームワークを使用して構築されたiPhoneプロジェクトの単体テストを設定しています。必要に応じてテストをビルドして実行する「ユニットテスト」と呼ばれる依存プロジェクトがあります。
しかし、それからそれはすべて機能しなくなりました。私が理解できる理由はありません。突然、私の「ユニットテスト」実行可能ファイルが起動し、そこに座って、永遠に待機します。-applicationDidFinishLaunching:
実際の単体テストと呼ばれるアプリケーションデリゲートのメソッドまでは到達しません。NSLogをデリゲートの-init
メソッドに挿入すると、そのメソッドが呼び出されることがわかりますが、アプリケーションは起動を「終了」しません。
「単体テスト」実行可能ファイルを実行するシェルスクリプトを変更して-RegisterForSystemEvents
引数を削除すると、実行可能ファイルはすぐに存在し(テストは実行されません)、次のメッセージが表示されます。
システムイベントサーバーがないため、終了します。
(SpringBoardなしで実行する場合は、EventPumpを実行するか、引数「-RegisterForSystemEvents」を渡します。
その引数を削除すると終了するので、ハングを引き起こしているように見えるので、その引数が正確に何をどのように行うのか興味があります。しかし、それなしではテストは実行されないので、どうすればそれを再び機能させることができるかを判断する必要があります。ただし、Googleは現在の状況に関連するものへのリンクを提供しておらず、開発ドキュメントには何も役立ちません。
何か案は?
xcode - OCUnit、NSLog、およびXCode 3.1
私はXCode3.0でOCUnit(XCodeに付属するデフォルトのインストール)を使用していました。テストを実行して、[ビルド結果]ウィンドウで結果を確認したり、出力したNSLog()メッセージを確認したりできてうれしいです。
ただし、XCode 3.1ではテストは正常に実行されますが、NSLog()出力が突然失われます。誰もがそれがどこに行ったか知っていますか?
objective-c - Objective-Cでのプロトコル/コールバック/デリゲートのOCUnitテスト
OCUnitを使用して、デリゲートプロトコルをテストする方法はありますか?
私はこれを試していますが、うまくいきません。
別のスレッドでメソッドを呼び出してobj
、デリゲートが呼び出されるまでテストをスリープ状態にしてみます。これをテストするもっと簡単な方法があるはずです。
cocoa - XCodeではなくコマンドラインからOCTestを実行する方法
組み込みの OCTest 単体テストを使用する XCode 3.1.2。
単体テストの実行時にクラッシュします。いくつかの追加の環境変数 (MallocCheckHeapStart、MallocCheckHeapEach など) を使用して実行したいと考えています。
私はこれの初心者で、コマンドラインからアプリの OCTest 単体テストを実行する方法がわかりません。または、XCode が単体テストを起動するときにいくつかの追加の環境変数を設定するように説得することもできます。
unit-testing - iPhone - 論理ユニット テスト用のリソースの取得
私は iPhone の単体テストの作成に関する Apple のドキュメントに従ってきましたが、箱から出してすぐにはルーチンが機能しないようです。単体テストがどこでアプリケーション デリゲートへの参照を取得するのか、よくわかりません。
私の依存関係は次のようなものです: My_Program_target -> UnitTesting_target -> UnitTests_bundle
次のコード スニペットは、アサートが失敗する場所です。私は CPPUNIT に非常に精通していますが、これがどのように交差するかを理解するのに苦労しています。
さらに:
私は自分のアプローチで論理テストを行うことにしました。XML ファイルを読み取ろうとしていますが、ファイルにアクセスできるパスを提供するバンドルを解決できません。allBundles で出力されたパスに貼り付けてみましたが、そのパスも機能していないようです。以下は、テストで実行しているものです (バンドルのパスを出力するために使用しているデバッグ ステートメントを確認できます)。
基本的に、パスのアサートは成功しませんが、バンドル リソースをコピーするように指示した unitTest バンドルを参照するパスまたはディレクトリに何を指定すればよいかわかりません。[NSBundle mainBundle] の呼び出しも機能しません。
objective-c - Xcodeでのプライベートメソッドのユニットテスト
私はおもちゃのプロジェクトでテスト駆動開発を試しています。クラスへのパブリックインターフェイスでテストを機能させることができます(ただし、テスト対象のメソッドよりも多くのテストコードを記述しているため、まだ問題があります)。
パブリックインターフェイスをクリーンに保つのが好きなので、私は多くのプライベートメソッドを使用する傾向があります。ただし、これらのメソッドでテストを使用したいと思います。
Cocoaは動的言語であるため、これらのプライベートメソッドを呼び出すことはできますが、テストで、クラスがこれらのメソッドに応答しない可能性があるという警告が表示されます(明らかに応答しますが)。警告なしでコンパイルするのが好きなので、ここに私の質問があります:
- Xcodeでこれらの警告をオフにするにはどうすればよいですか?
- これらの警告をオフにするために他に何かできることはありますか?
- 「ホワイトボックス」テストを試す際に何か問題がありますか?
objective-c - OCUnit テストが「コード 138」で失敗するのはなぜですか?
現在、XCode 3.1 を使用して Objective-C を学習しようとしています。私は小さなプログラムに取り組んでおり、それに単体テストを追加することにしました。
Apple Developer ページの手順に従いました - Automated Unit Testing with Xcode 3 and Objective-C。最初のテストを追加したとき、テストが失敗したときは問題なく動作しましたが、テストを修正するとビルドが失敗しました。Xcode は次のエラーを報告しました:
エラー: テスト ホスト '/Users/joe/Desktop/OCT/build/Debug/OCT.app/Contents/MacOS/OCT' がコード 138 で異常終了しました (クラッシュした可能性があります)。
エラーを特定しようとして、上記の単体テストの例の手順を再度実行したところ、例が機能しました。コードの簡易バージョンとテスト ケースを追加すると、エラーが返されました。
作成したコードは次のとおりです。
カード.h
カード.m
CardTestCases.h
CardTestCases.m
unit-testing - otest を使用してテストをデバッグするときに、実行可能ファイルをテスト バンドルにリンクするにはどうすればよいですか?
私は Chris Hanson の優れた Xcode 単体テスト ガイドのハイブリッドのようなものを使用しています。
私のプログラムは (コマンドライン) アプリケーション (実行可能ファイル自体を使用してテストを実行することはできません) ですが、単体テストをデバッグできる必要があります。
だから私が持っているものは次のとおりです:
テスト バンドルとテストを作成します。新しいテスト ターゲットを作成し、バンドル ローダーとテスト ホストを設定します。メイン ターゲットをテスト ターゲットの直接の依存関係として追加します。新しいカスタム実行可能 otest を作成します。-SenTest self
、MyTestBundle.octest
、引数を追加します。環境に変数を追加DYLD_LIBRARY_PATH
します。DYLD_FRAMEWORK_PATH
私の問題は、実行可能ファイルを実行してテストをデバッグしようとすると、テストによって参照されるクラスが利用できないことです。たとえば、クラス Foo のテストを作成すると、テストで Foo をインスタンス化するとすぐに、不正なアクセス例外が発生します。
Foo.m をテスト ターゲットに追加すると、これはなくなりますが、テストするすべてのクラスをテスト ターゲットとアプリケーション ターゲットに追加する必要はありません。
メインの実行可能ファイルのどこにクラスがあるかを otest に伝える何らかの変数を追加する必要があるだけだと思いますが、この引数の名前がどうなるかわかりません。
誰かがこれを修正するための正しい方向に私を向けることができますか?
objective-c - Xcode で OCUnit テストのサブセットを実行する方法
プロジェクトをチェックインする前に使用する一連の単体テストがあります。ただし、多くの場合、そのうちの 1 つだけがコードの回帰を見つけます。このような場合、失敗のデバッグ中にその特定の単体テストのみを実行したいと思います。Xcodeでこれを行う方法が見つかりませんでした。出来ますか?