注: 「GHUnit を使用する」は、この質問に対する適切な回答ではありません。GHUnit は Xcode4 OCUnit よりも優れていると考える人がほとんどだと思いますが、それは私が求めていることではありません。別途評価いたします。
Xcode4でゼロから作成したXcodeプロジェクトがあり、作成時に「単体テストを含める」チェックボックスがオンになっています。以前のプロジェクトで開発したいくつかのライブラリも含めました。これらは、[ファイルを x に追加...] ダイアログを介してプロジェクトに追加され、アプリケーション ターゲット (テスト ターゲットではなく) にのみ追加されました。アプリケーションを実行すると問題なく動作するので、正しく設定されていると思います。また、このプロジェクトのために書かれたさまざまなクラスもいくつかあります。
私のテスト ファイルは、[AppName]Tests.h および .m という名前の標準的な方法でセットアップされています。
ヘッダーのコード:
#import < SenTestingKit/SenTestingKit.h >
@interface [AppName]Tests : SenTestCase {
@private
}
@end
実装のためのコード:
#import "[AppName]Tests.h"
@implementation [AppName]Tests
- (void)setUp
{
[super setUp];
// Set-up code here.
}
- (void)tearDown
{
// Tear-down code here.
[super tearDown];
}
// Test methods go here
@end
これはまさに基本的な骨格です。他のファイルをインポートしない限り、他のプロジェクトでもこのプロジェクトでも問題なく動作します。このプロジェクトから別のファイルをインポートして使用すると、Xcode 出力ログに次のエラーが表示されます。
The test bundle at /Users/[Me]/Library/Developer/Xcode/DerivedData/[AppName]-dwuuuwcpmdqxqmgxomoniplwhlpb/Build/Products/Debug-iphonesimulator/[AppName]Tests.octest could not be loaded because a link error occurred. It is likely that dyld cannot locate a framework framework or library that the the test bundle was linked against, possibly because the framework or library had an incorrect install path at link time.
私はすでにそれを確認しました:
- 私が使用するすべてのフレームワークは、アプリ ターゲットとテスト ターゲットの両方について、「Link Binary with Libraries」に追加されています。
- テスト ターゲットは正しくビルドされるように構成されており、すべてのテスト メソッドが [スキームの編集...] -> [テスト] -> [テスト] に表示されます。
- この問題を除くすべての問題は解決されており、コンパイラ エラーはありません。
- ここで説明するすべての設定は 正しく設定されており、正しくテストされる私の他のプロジェクトと同じです。
これを引き起こしている可能性のあるものについて何か考えはありますか?