I'm trying to run elpy's
C-c C-t to do
elpy-test on a python
test_x.py file I have opened on a remote machine with TRAMP.
- There is a python virtual env in the (remote machine's) directory,
- I want to run the tests relative to the (remote machine's) project root
- The PYTHONPATH is set to the root directory, which is
Locally, I run
C-c C-t and this works like so:
-*- mode: compilation; default-directory: "~/myproject/test/integration/data/mymod/" -*- Compilation started at Thu May 13 13:56:38 py.test --log-level\=DEBUG /home/user/myproject/test/integration/data/mymod/mod2/test_x.py\:\:test_y ================================================================================ test session starts ================================================================================= platform linux -- Python 3.7.3, pytest-5.4.3, py-1.10.0, pluggy-0.13.1 -- /env/default/bin/python cachedir: .pytest_cache rootdir: /home/user/myproject, inifile: pytest.ini plugins: asyncio-0.14.0, flask-1.1.0, forked-1.2.0, xdist-1.33.0, requests-mock-1.8.0, typeguard-2.7.0 collected 1 item mod2/test_x.py::test_y SKIPPED [100%] ============================================================================= slowest 10 test durations ============================================================================== 0.00s setup test/integration/data/mymod/mod2/test_x.py::test_y 0.00s teardown test/integration/data/mymod/mod2/test_x.py::test_y ================================================================================= 1 skipped in 2.05s ================================================================================= Compilation finished at Thu May 13 13:56:41
This looks good. This is exactly what I want to see.
However, when I remotely open the same file, and expect it to run on the remote machine via TRAMP, picking up the remote environment:
-*- mode: compilation; default-directory: #("/ssh:remote:/home/user/myproject/test/integration/data/mymod/" 1 4 (helm-ff-file t) 5 13 (helm-ff-file t)) -*- Compilation started at Thu May 13 14:00:37 py.test --log-level\=DEBUG /ssh\:remote\:/home/user/myproject/test/integration/data/mymod/mod2/test_x.py\:\:test_y /bin/sh: 2: py.test: not found Compilation exited abnormally with code 127 at Thu May 13 14:00:37
Some things I notice:
- The default directory looks mostly correct AFAICT, but I'm not sure what the
- It's not clear to me why py.test is not found.
- I don't see elpy listing any of that other stuff, like cachedir or platform---is it not configured at all?
- Is there a variable I need to set either within emacs, orperhaps an environment variable, etc., so that when executed remotely, I can pick up the local environments?
Additionally, I have a
.dir-locals.el in the root where I can set these as needed, if they are location-specific.
What can I change so I can run my tests with elpy over a tramp ssh session successfully?