2016-06-21 15 views
0

私はテストプロセスを自動化するためにスキャンをインストールしました。 http://qualitytesting.tumblr.com/post/141771752059/run-a-subset-of-xctest-tests-with-fastlanescan迅速なコードから端末「スキャン」コマンドを実行

2つのプロジェクトはiosで、もう1つはiosプロジェクトを実行するOsxです。

osxプロジェクトでは、私はスキャンファイルを初期化し、そこでiosプロジェクトのスキームを追加します。

私は端末から

scan 

コマンドを実行すると、それが成功したのiOSプロジェクトを実行します。

しかし、私は、コードの下に使用している場合:

class func shell(args: String...) -> Int32 { 
    let task = NSTask() 
    task.launchPath = "/usr/bin/env" 
    task.arguments = args 
    task.currentDirectoryPath = "/Users/username/Desktop/Xocde/mainSwiftAutomation/" 
    task.launch() 
    task.waitUntilExit() 
    return task.terminationStatus 
} 

などの関数を呼び出すより:それは以下のエラーを示し

classname.shell("scan") 

env: scan: No such file or directory 

を助けてください。

+1

あなたのコードは '#!/ usr/bin/env swift'、' import Foundation'で始まりますか? – Oletha

+0

はい私は財団をインポートしますが、もし私が#を加えたら!/ usr/bin/env swift、それはエラーを示しています。期待される表現 –

+0

私はスワイプコードからスキャンコマンドを実行する方法を助けることができます –

答えて

1

あなたのスキャンではなくそこにインストールされている場合は、

task.launchPath = "/usr/local/bin/scan" 

task.launchPath = "/usr/bin/env" 

を変更した場合、スキャンが実行されます。これは私のマシン上の問題でした。

アプリケーションでは、レポートを生成するためにxcprettyが見つかりませんでしたが、UIテストが実行されます。

あなたが(むしろコマンドラインツールのプロジェクトより)通常のrun_tests.swiftファイルにシェバング(#!/usr/bin/env swift)とのコードを追加した場合は、コマンドラインから問題なくそれを実行することができるはずです。

$ swift run_tests.swift 

...スウィフトコードからテストを実行していますが、Xcodeではテストを実行していません。

+0

urヘルプのための@Olethaに感謝します...私はわずかに異なる方法でそれを管理しました –

+0

あなたは考えましたそれをアウト:) – Oletha

+0

あなたはどのようにあなたの#を追加する!/ usr/bin/envスウィフトコードでswift?この行を私の素早いコードに追加すると、エラーが表示されます。私はswift 2.2を使用しています。 –

0

私は以下のようにこれを解決した:

私は私のプロジェクトフォルダ内のシェルスクリプトを見つけて、私のコードを使用して、それを実行するよりも、私はスキャンコマンドを使用するシェルスクリプトを作成しています。

しかし、そこに私はに行き、

task.launchPath = "/usr/local/bin/scan" 

に、コマンドラインからの私のtaskpathを変更を/ usr/local/binに/スキャンし、以下のようにそれを実行可能にします。最終的に私は実行

sudo chmod +x /usr/local/bin/scan 

私のシェルスクリプトとそれはうまく動作します。

関連する問題