2015-08-28 170 views
28

好吧,我目前還沒有能夠在任何測試版中運行此測試。我遇到的一些問題是herehere使用Xcode 7運行UITesting時'NSInternalInconsistencyException'

現在,我覺得我失去了一些東西。

這是我迄今取得的進展

  1. 啓用「UI測試」選項,同時創建一個新項目。這實際上爲我增加了一個目標。所以我應該很好走 - 或者我想。 enter image description here
  2. UI測試下的swift文件已經導入了「XCTest」,並且是「XCTestCase」的一個子類。
  3. 設置()啓動應用程序 XCUIApplication()。啓動()
  4. 我增加了以下(通過點擊錄製按鈕) enter image description here

然後,我跑這個測試。

整個事情失敗,甚至在測試前被調用,在設置()具有以下

*** Assertion failure in -[XCUIApplication init], /Library/Caches/com.apple.xbs/Sources/XCTest_Sim/XCTest-8170.3/XCTestFramework/UI Testing/XCUIApplication.m:76 /Users/UserName/Documents/Projects/Testing/UiTesting/UITestingApp/UITestingApp.swift:0: error: -[UITestingApp.UITestingApp testSimpleTap] : failed: caught "NSInternalInconsistencyException", "No target application path specified via test configuration:
testBundleURL:file:///Users/UserName/Library/Developer/CoreSimulator/Devices/E3201DC2-CAD3-48C3-95F5-15E18DCA1836/data/Containers/Bundle/Application/8B33FC59-FC03-41F8-BD21-43D81BA2D355/UITestingApp-Runner.app/PlugIns/UITestingApp.xctest/
productModuleName:(null) testsToSkip:(null) testsToRun:(null) reportResultsToIDE:no sessionIdentifier:<__NSConcreteUUID 0x7f93e146c0b0> F242796B-ED26-4AA7-861A-540D2D93CB8F pathToXcodeReportingSocket:(null) disablePerformanceMetrics:no treatMissingBaselinesAsFailures:no baselineFileURL:(null) targetApplicationPath:(null) targetApplicationBundleID:(null) reportActivities:no

運行任何應用程序啓動進入這個後或有什麼我可能會丟失什麼建議?

注:我沒有設定UI測試目標的「目標應用程序」我的應用程序

更新:我注意到這是適用於Xcode中的所有測試/最終發佈 - 因此

+0

我只是嘗試在'setUp()'方法中初始化XCUIApplication,並得到了同樣的問題。 – Ducky

+0

我遇到與Xcode 7相同的崩潰 – SuPotter

+0

我看到很多博客用XCTest寫關於UI測試的內容,但沒有示例代碼可以按預期工作。爲什麼? LoL – Ducky

回答

3

更新標題後無休止的調整,將「Xcode首選項」中的派生數據位置從「傳統」更改爲「自定義」,並使其發揮作用!

enter image description here

+2

爲什麼downvote? – SuPotter

+4

這樣做並沒有解決我的問題:( – DonnaLea

+0

我會在這裏downvote,但是因爲我失去了得分,所以我不會這樣做,這不是答案。 –

28

我也有類似的問題,我的錯誤是試圖在常規測試目標使用的用戶界面測試代碼。一旦我創建了一個新的目標,從「iOS UI Testing Bundle」開始並複製代碼,錯誤消失了。下面是我指出了正確的方向螺紋: https://twitter.com/punksomething/status/609505357132500993 。「是啊,我是想在常規測試目標使用UI測試必須創建一個新增加的UI測試目標」

+0

是的,我看到那篇文章。謝謝 – SuPotter

+1

這一個應該是正確的答案 –

3

我有這個確切的問題。我認爲這個問題源自於重新命名一個目標。這裏的修復無一幫助我解決了我的問題。由於我剛剛入門並沒有編寫任何測試,因此我刪除了UI測試的整個目標並重新添加。相同的名稱和一切開始工作很好。

如果遇到這個問題,它的可能是由於命名。你可以用這種方式跟蹤它,或保存你的測試並重新添加一個UI目標。

12

這發生在我身上的時候,我試圖向單元測試目標添加一個新類,但我選擇了UI測試用例類模板而不是單元測試用例類模板。

確保您始終選擇正確的一個。儘管它們都是XCTestCase子類,並且將它們分配給適當的目標,但它在選擇錯誤的模板時會拋出此錯誤。

enter image description here

+0

啊哈!這個答案真的很有幫助,這是你可以整天看,找不到任何修復的情況之一,因爲只要看一下那裏的文件沒有顯示任何錯誤 – Dallas

+0

我真的碰到了同樣的問題,比較模板是一個很好的提示,謝謝 – DevAndArtist

4

我重新命名我的目標後,得到了這個。解決方案是在我的UITest目標中將'Target Application'設置爲'None',並點擊構建。在此之後,我將「無」設置回我的應用程序,並且解決了錯誤。 我認爲很有可能重命名會混淆ui測試目標的「目標應用程序」設置。

+0

非常感謝!重命名整個項目後,我得到了同樣的問題 – Kris

+0

我必須設置'目標應用程序「設置爲」無「,然後點擊構建,然後我必須將」目標應用程序「設置回我的項目。Thx! –

2

我在編寫一些測試並運行它們後發生了這個錯誤。我嘗試了所有發佈的修復和建議,但沒有一個爲我工作。

我決定刪除每次運行測試時重新創建的XCUI應用程序,並重新啓動我的設備並運行。但是如果我之後運行測試7或8次,錯誤會回來,我只是重複解決方案週期。如果你只是刪除應用程序,不重新啓動它不會工作。

不知道這個答案是否適用於所有人,但這是對我有用的東西。

4

我收到斷言

*** Assertion failure in -[XCUIApplication init], /Library/Caches/com.apple.xbs/Sources/XCTest_Sim/XCTest-8170.3/XCTestFramework/UI Testing/XCUIApplication.m:76

規律,就像還在其他答案中描述。真的很煩人,我花了一些時間才找到擺脫它的最低步驟。

我發現的關鍵解決方案是重新啓動您的設備。所以,你不需要刪除應用程序,重新啓動Xcode或其他東西,只需重新啓動應該使這個斷言消失。

+0

這節省了我的一天。設備上的測試守護程序似乎不太穩定。 – Leo

+0

@Leo確實守護進程沒有響應。我甚至試圖在不重啓的情況下彈出手機上的緩存,但沒有解決問題。重新啓動爲我工作,愚蠢但有效的修復。謝謝。 – JJacquet

0

我有這個問題上的Xcode運行Cucumberish測試8.

我通過固定正在進行的項目(在項目導航)> MyTestTarget>常規

這裏確保目標應用程序設置爲你的應用程序希望運行測試。默認情況下,它被設置爲無。

1

它爲我工作後,我評論中設置下面的代碼()方法我TestCaseClass

continueAfterFailure =假& XCUIApplication()的。推出()

0

刪除現有的目標,並再次創造修復問題。

確保您正在選擇正確的測試包。對於UI測試,它應該是「iOS單元測試軟件包」。

-1
  1. 新創建的文件UI測試用例和單元測試案例模板是沒有太大的區別,(代碼的前兩行),在測試選擇單元測試會提示「應用程序沒有運行」添加「XCUIApplication( ).launch()「可以解決這個問題。
  2. 當測試提示沒有找到控件(E.摹的UITextField),請設置控件名稱\身份 - >輔助功能 - >標籤\同名作爲UITestClass使用的控制
  3. 你沒有測試類添加到相應的UI目標
相關問題