*

Xcode6-Beta3でSwiftでBDDを行うためにQuickを導入し動作させる手順

公開日: : Swift


スポンサードリンク



  1. Clone the repository
  2. Create a using Quick Project
  3. Add Quick.xcodeproj and Nimble.xcodeproj to your test target
  4. Link Quick.framework and Nimble.framework
  5. Change all-product-headers.yaml

 

Clone the repository

git clone git@github.com:modocache/Quick.git
を実行してQuickをクローンします。

Create a using Quick Project

Product Name:UseQuickSample
Language Swift
Device:iPhone
で新規プロジェクトを作成します。

Add Quick.xcodeproj and Nimble.xcodeproj to your test target

Add Quick.xcodeproj to your test target

ナビゲーションエリアのプロジェクトナビゲータでUseQuickSampleTestsグループを選択し
右クリックメニューの「Add Files to UseQuickSampleTests」をクリックし
gitでクローンを作成されたQuickフォルダの配下にあるQuick/Quick.xcodeprojを選択します。

Add Nimble.xcodeproj to your test target

同様にNimble/Nimble.xcodeprojを追加します。

Link Quick.framework and Nimble.framework

Link Quick.framework

ナビゲーションエリアのプロジェクトナビゲータでプロジェクトルートを選択し、TARGETSでm「UseQuickSampleTests」を選択し、「Build Phases」の「Link Binary With Libraries」の左の▶︎をクリックし、「Link Binary With Libraries」を展開します。
スクリーンショット 2014-07-16 11.13.04

「+」ボタンをクリックすると以下の画面が表示されるので赤枠部分にQuick.frameworkと入力します。
スクリーンショット 2014-07-16 11.36.28

Quick.frameworkの候補が表示されるので、「Quick.framework from ‘Quick-iOS target in ・・・’」を選択し、「Add」ボタンをクリックします。
スクリーンショット 2014-07-16 11.55.23

Link Nimble.framework

同様にNimble.frameworkを追加します。

Change all-product-headers.yaml

Change all-product-headers.yamlとビルドエラーの回避を実施します。

この時点でUseQuickSampleTestsをビルドすると以下のエラーが発生します。

/Users/ユーザ名/Library/Developer/Xcode/DerivedData/UseQuickSample-czynwgqnkhjdkeaxbhyshuyaxrep/Build/Intermediates/UseQuickSample.build/all-product-headers.yaml:4:13: error: Could not find closing ]!
‘roots’: [



Command /Applications/Xcode6-Beta3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift failed with exit code 254

発生しない方は、おめでとうございます。環境作成は終了です。

エラーへの対処方法以下の通りです。

  1. Set Nimble target,Nimble-iOS target,Quick target and Quick-iOS target ‘Define Module’ in ‘Build Setting’ to ‘No’.
  2. Click Xcode’s menu [Product]>[Clean].
  3. Replace all-product-headers.yaml file’s content with the code below and lock
  4. Set Nimble target,Nimble-iOS target,Quick-iOS target and Quick-iOS target ‘Define Module’ in ‘Build Setting’ to ‘Yes’.
  5. Execute Test.

 

Nimble、Nimble-iOS、Quick、Quick-iOSの「Build Settings」の「Define Module」をNoに変更

Nimbleの設定変更

以下の画面のように選択していき’Define Module’の値を「No」に変更します。
スクリーンショット 2014-07-16 13.15.39

Nimble-iOS、Quick、Quick-iOSの設定変更

Nimbleと同様にDefine Module」をNoに変更します。

Execute Clean.

Xcodeのメニューの[Product]>[Clean]をクリックして、プロジェクトをクリーンします。

Replace all-product-headers.yaml file’s content with the code below and lock.

Replace all-product-headers.yaml file’s content with the code below

/Users/ユーザ名/Library/Developer/Xcode/DerivedData/UseQuickSample-czynwgqnkhjdkeaxbhyshuyaxrep/Build/Intermediates/UseQuickSample.build/all-product-headers.yamlの内容を以下のように変更します。

Lock all-product-headers.yaml file.

Macのターミナルから
sudo chflags uchg all-product-headers.yaml(フルパス)
を実行しall-product-headers.yamlをロックします。

Nimble、Nimble-iOS、Quick、Quick-iOSの「Build Settings」の「Define Module」をYesに変更

これは「Build Settings」の「Define Module」をNoに変更した時と変更方法は同じで、値がYesになるだけの違いです。

Execute Test.

テストを実行します。プロジェクト作成時のテストクラスですが、これでテストが実行&成功します。

UseQuickSampleTestsで以下のコンパイルエラーが発生しますが、無視しても良いフェーズまで進行してのエラーだから気にしなくてもOKです。
Unable to write to file all-product-headers.yaml

このエントリー自体がXcode-Beta3に対してのバッドノウハウですから・・・

Quick形式のテストの実行

最後にQuick形式のテストが実行できることを確認します。

Quick
の「Quick: Examples and Example Groups」の「Examples Using it」の一番最初のテストを実行してみます。

テストのコード(こちらはそのまま引用しただけです。)

テスト対象はDolphinクラスで、Boolの変数であるisFriendlyとisSmartを持っていないといけないようですので、以下のようなDolphin.swiftを作成しました。

テストを実行すると例のコンパイルエラーが発生しますが(UseQuickSampleも!?)、ちゃんとDolphinSpecは成功しました。
スクリーンショット 2014-07-16 14.06.37

以上、間違いなくXcode6-Beta3だけのバッドノウハウだと思います。


スポンサードリンク

Googleアドセンス

Googleアドセンス




関連記事

Swift入門[公式リファレンスのチュートリアルのSteps2の前半]

「Swift」と「Xcode 6」を少しずつさわっていこうと思ってはいるのですが、「Xcode 6

記事を読む

Swift入門(Xcode6のXCTestフレームワークで学ぶ) 第二回「関数(メソッド)とクロージャーの利用方法」

前回はSwiftの概要をザックリと説明させていただきました。 今回は「メソッドの宣言方法」をよ

記事を読む

2014年の秋のAppleのプレスイベントとXcode6-beta-7のインストール方法

2014年の秋のAppleのプレスイベント いよいよAppleは、米国西海岸時間9月9日午前10時

記事を読む

Xcode6_Beta5&SwiftでUITableViewでUINibを使ったカスタムセル(UITableViewCell)を利用する方法

前回は、「Xcode5&Objective-CでUITableViewでUINibを使ったカ

記事を読む

Xcode6の正式版がリリースされApp Storeからダウンロードしインストール可能になりました。

ついにSwiftが利用できるXcode6の正式版がリリースされました。 ブラウザからMac App

記事を読む

Xcode6とSwiftでイメージ(画像)やアニメーションを表示する方法

本エントリーでは、Xcode6(言語はSwift)を利用してイメージ(画像)やアニメーションを表示す

記事を読む

Xcode6(xcode_6_beta_7、Xcode 6 GM seed)のインストール方法

2014年9月22日追記 Xcode6の正式版がリリースされApp Storeからインストール可能

記事を読む

Xcode6(Swift)のデリゲートとプロトコルの使い方

Xcode(Objective-C)のデリゲートの使い方では利用言語がObjective-Cの時のデ

記事を読む

iOS8開発者向けお勧め本紹介[詳細! Swift iPhoneアプリ開発 入門ノート Swift 1.1+Xcode 6.1+iOS 8.1対応]

iOS7開発者向けお勧め本紹介を以前に紹介させていただきまいたが、今回は同じ著者(大重美幸様)の本を

記事を読む

iOS(Xcode6とSwift)におけるマルチスレッド処理の実装方法その1[NSThreadクラスの簡単な利用例]

前回はObjective-CにおけるNSThreadクラスの簡単な利用例を取り扱いましたが今回は、ほ

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

動画で英語を学習できるiOSの無料アプリCapTubeをリリースいたしました。

個人では初となるiOSアプリをリリースいたしました。 何度もリジ

no image
Ruby on rails4系でBootstrapを利用するためのtips

MacでRuby on rails4系のBootstrapを利用しよう

no image
Java、Eclipse、JUnit関連のエントリーの移行のお知らせ

Java、Eclipse、JUnit関連のエントリーは http:/

iOS8開発者向けお勧め本紹介[詳細! Swift iPhoneアプリ開発 入門ノート Swift 1.1+Xcode 6.1+iOS 8.1対応]

iOS7開発者向けお勧め本紹介を以前に紹介させていただきまいたが、今回

Swift入門(Xcode6のXCTestフレームワークで学ぶ) 第二回「関数(メソッド)とクロージャーの利用方法」

前回はSwiftの概要をザックリと説明させていただきました。 今

→もっと見る

Optimization WordPress Plugins & Solutions by W3 EDGE
PAGE TOP ↑