PYTHONPATH of tests is forcefully set during CMake.
Summary
ctest does not seem to pass environment variables through to the tests that it invokes.
For an example of where this fails, consider
PYTHONPATH=.. ninja self_driving_e2e_test
where self_driving_e2e_test will invoke model_server_test.
The PYTHONPATH has to be specified because we are using relative imports in model_server.py.
We must use relative imports in model_server.py because we are relying on Python's import cache to simulate having a global importable singleton.
So the proper invocation has to be something like, from a typical build folder,
PYTHONPATH=.. ./test/model_server_test
Attempted fixes that I have tried include
export PYTHONPATH=.. before running ninja self_driving_e2e_test
PYTHONPATH=.. ninja self_driving_e2e_test
We can fix this in CMake per #1611, but it is a bit unexpected/surprising.
I don't know how you would fix it otherwise.
Documentation
PYTHONPATH of tests is forcefully set during CMake.
Summary
ctest
does not seem to pass environment variables through to the tests that it invokes.For an example of where this fails, consider
where
self_driving_e2e_test
will invokemodel_server_test
.The PYTHONPATH has to be specified because we are using relative imports in
model_server.py
. We must use relative imports inmodel_server.py
because we are relying on Python's import cache to simulate having a global importable singleton. So the proper invocation has to be something like, from a typical build folder,Attempted fixes that I have tried include
export PYTHONPATH=..
before runningninja self_driving_e2e_test
PYTHONPATH=.. ninja self_driving_e2e_test
We can fix this in CMake per #1611, but it is a bit unexpected/surprising. I don't know how you would fix it otherwise.