GetTempPathW
を呼び出し、返されたdirに一時ファイルを作成しようとするテストがあります。テストを直接実行すると、GetTempPathW
はC:\Users\sgreens\AppData\Local\Temp\
を返してパスします。私がbazel test
でそれを実行すると、それはC:\Windows\
を返し、テストはそこにファイルを作成することができません。 documentation of GetTempPathからBazelで実行するとGetTempPathはC: Windows
:
環境の存在をGetTempPath関数チェック 変数を次の順序で見つかった最初のパスを使用:
- TMP環境変数で指定されたパス。
- TEMP環境変数で指定されたパス。
- 環境変数USERPROFILEで指定されたパス。
- Windowsディレクトリ。 CMDウィンドウで
私はからbazelを実行します。CROSSTOOLで
C:\Users\sgreens\yeti\yeti>echo %TMP%
C:\Users\sgreens\AppData\Local\Temp
C:\Users\sgreens\yeti\yeti>echo %TEMP%
C:\Users\sgreens\AppData\Local\Temp
C:\Users\sgreens\yeti\yeti>echo %USERPROFILE%
C:\Users\sgreens
C:\Users\sgreens\yeti\yeti>echo %WINDIR%
C:\WINDOWS
私はビルド時に生成:
env_entry {
key: "TMP"
value: "C:\\Users\\sgreens\\AppData\\Local\\Temp"
}
env_entry {
key: "TEMP"
value: "C:\\Users\\sgreens\\AppData\\Local\\Temp"
}
BazelはGetTempPath
がC:\Windows\
を復帰させるためには何をしているのですか?どうすれば修正できますか?
おそらく関連する問題: '$' sign in the output base make all tests failed on windows