次のような環境変数を使用して、Windows で Tox を使用して Python テストを実行しようとしています。
set APP=c:\path\to\app\n-starting-folder\app.apk & tox -- report.xml tests/someTest.py
setUp()
メソッドでは、環境変数から値を取得します。
capabilities = {}
capabilities['app'] = os.getenv('APP')
これにより、パスが間違っているというエラーが表示されます。
error: Failed to start an Appium session, err was: Error: Bad app: c:\path\to\app\n-starting-folder\app.apk . App paths need to be absolute, or relative to the appium server install dir, or a URL to compressed file, or a special app name. cause: Error: Using local app, but didn't end in .zip, .ipa or .apk
しかし、(まったく同じ)パスを生の文字列リテラルとしてメソッドに直接入れても、setUp()
エラーは発生しません。
capabilities['app']=r'c:\path\to\app\n-starting-folder\app.apk'
私の質問は、なぜ環境変数の値が何らかの形で壊れているのですか? パスに があるため"\n"
だと思いますが、適切にエスケープする方法がわかりません。