J'ai un test qui appelle GetTempPathW
et essaie de créer des fichiers temporaires dans le répertoire retourné. Lorsque je lance le test directement, GetTempPathW
renvoie C:\Users\sgreens\AppData\Local\Temp\
et cela passe. Lorsque je l'exécute avec bazel test
, il renvoie C:\Windows\
et le test ne peut pas y créer de fichiers.L'exécution avec Bazel rend le retour GetTempPath C: Windows
Des documentation of GetTempPath:
La fonction vérifie GetTempPath pour l'existence de variables environnement dans l'ordre suivant et utilise le premier chemin trouvé:
- Le chemin spécifié par la variable d'environnement TMP .
- Le chemin spécifié par la variable d'environnement TEMP.
- Le chemin spécifié par la variable d'environnement USERPROFILE.
- Le répertoire Windows.
Dans la fenêtre cmd je cours bazel de:
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
Dans le crosstool généré lorsque je construis:
env_entry {
key: "TMP"
value: "C:\\Users\\sgreens\\AppData\\Local\\Temp"
}
env_entry {
key: "TEMP"
value: "C:\\Users\\sgreens\\AppData\\Local\\Temp"
}
Que Bazel fait pour provoquer GetTempPath
revenir C:\Windows\
? Comment puis-je le réparer?
question connexe Peut-être: '$' sign in the output base make all tests failed on windows