2016-03-03 11 views
7

私はUIターゲットの言語と地域を設定しようとしていますが、残念ながらうまくいかないようです。Xcode 7 UIターゲットロケールと地域設定をテストする

私は最初に、両方の方法を試してみた:

  • 製品|スキーム|スキームの編集
  • 実行|オプション
    • アプリケーション言語:フランス語
    • アプリケーション所在地:フランス
  • テスト| |

    • 製品:引数
      • は、ファイル名を指定して実行アクションの引数と環境変数を使用します。チェック

    そして私は、この他の方法を試してみてくださいスキーム|スキームの編集

  • テスト|引数
    • は、ファイル名を指定して実行アクションの引数と環境変数を使用します。起動時に渡された未確認
    • 引数:
      • -AppleLanguages (French)
      • -AppleLocale fr_FR

各道resultin UIでのテストはまだ英語で行われています。さらに、レコードボタンを押すと、フランス語で動作します...

私は何か間違っていると、私は知ってうれしいです!

ありがとうございます!

+1

あなたはそれを理解しましたか?私は全く同じ問題を抱えています。シミュレータの設定を変更しても効果はありません:-( – ChaosSpeeder

答えて

8

ここで変更私はそれを考え出しました。 Xcodeで一時的にテストするために、launchArgumentsのロケール設定を設定しました。 CIのために

override func setUp() { 
    super.setUp() 

    // Put setup code here. This method is called before the invocation of each test method in the class. 

    // In UI tests it is usually best to stop immediately when a failure occurs. 
    continueAfterFailure = false 
    app = XCUIApplication() 
    app.launchArguments = [ 
     "-inUITest", 
     "-AppleLanguages", 
     "(de)", 
     "-AppleLocale", 
     "de_DE" 
    ] 

私はフェリックス・クラウスからfastlaneを使用して、スナップショットでローカライズされたスクリーンショットを取得します。

+0

愚か!ありがとう!なぜ私は目標設定が理解していない場合でも、私は動作します! (私もFelix Krauseのutilを使用しています) – Zaphod

+0

スキームの設定は仕事をすると思う人もいますが、そうではないと思います。あなた、主人公です! –

+0

は悲しいことに私のために働かない。少なくともターゲットアプリケーションで[NSLocale currentLocale] .localeIdentifierを使用しています。起動引数を無視してsim設定を読み込みます。実際には、これは別の投稿と関連しています。「引数はテスト自体に渡されますが、テストされたアプリケーションには渡されません。 http://stackoverflow.com/questions/35463150/scheme-language-setting-ignored-in-ios-unit-and-ui-testsを参照してください。 また、WWDCのビデオのAppleの状態。テストランナーバンドルはアクセシビリティを介してアプリターゲットと対話することしかできません。 –

0

シミュレータの仕様を変更してみてください。それは毎回私のために働いた。シミュレータ上で

: 設定>一般>言語&地域> iPhone言語 - >

+0

残念ながら、この方法には2つの注意点があります。シミュレータをリセットすると、設定が失われますが、ほとんどの場合、ローカルのシミュレータでのみ動作しますXcodeサーバー上で実行されているCIの場合は、シミュレータにアクセスしません。テストは実行されます。 – Zaphod

+0

申し訳ありません、それは私の唯一のショットでした。幸運 –

関連する問題