3

質問:このプル リクエストでは、テストは CircleCI ではパスしませんが、テストはローカルでパスします。なんで?


CircleCI テスト出力は、すべてのテストの失敗を示していFBSnapshotTestCaseます。例えば:

✗ testAdjustsFontSizeToFitWidth, ((comparisonSuccess__) は true) に失敗しました - スナップショットの比較に失敗しました: エラー Domain=FBSnapshotTestControllerErrorDomain Code=1 「参照イメージを読み込めません。」UserInfo=0x7f85f36b0a50 {NSLocalizedFailureReason=参照画像が見つかりません。レコード モードでテストを実行する必要があります。NSLocalizedDescription=参照イメージを読み込めません。

[…]

✗ testAttributedTruncationToken、((comparisonSuccess__) は true) に失敗しました - スナップショットの比較に失敗しました: エラー Domain=FBSnapshotTestControllerErrorDomain Code=1 「参照イメージを読み込めません。」UserInfo=0x7f85f35b06d0 {NSLocalizedFailureReason=参照画像が見つかりません。レコード モードでテストを実行する必要があります。NSLocalizedDescription=参照イメージを読み込めません。

ただし、同じテストがローカルでパスします。

画像

CircleCI では、テストReferenceImages_32は存在しないディレクトリを使用します。

/Users/distiller/TTTAttributedLabel/Example/TTTAttributedLabelTests/ReferenceImages_32/TTTAttributedLabelTests/testAdjustsFontSizeToFitWidth@2x.png

ただし、イメージは に存在しReferenceImages_64ます。ファイルで iPhone 6 シミュレーターを使用するように指定されて_64いるため、次のディレクトリが使用されると予想されます。circle.yml

dependencies:
  pre:
    - xcrun instruments -w "iPhone 6 (8.3 Simulator)" || exit 0
  override:    
    - sudo gem install cocoapods xcpretty obcd -N
    - pod install --project-directory=Example
test:
  override:
    - set -o pipefail && xcodebuild -workspace 'Example/Espressos.xcworkspace' -scheme 'Espressos'
      -sdk iphonesimulator -destination "platform=iOS Simulator,name=iPhone 6"
      GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES clean test | xcpretty -c
      --report junit --output ${CIRCLE_TEST_REPORTS}/junit.xml
  • これは何が原因ですか?
  • CircleCI でテストをパスするにはどうすればよいですか?
  • おそらく関連:このFBSnapshotTestCase問題
4

1 に答える 1

2

キャッシュなしでビルドを実行してみましたか? これにより、この種の問題が解決されることがよくあります。キャッシュなしでビルドするには、右上のボタンをクリックするだけです。

于 2015-10-30T18:56:39.083 に答える