python – 使用xdist时设置远程环境

我目前正在开发一个项目,涉及在远程主机(bash)上运行的测试.

不幸的是,远程 python

解释器不尊重可用的站点包(它是嵌入式的:abaqus python(2.6)).但是,使用PYTHONPATH变量可以指定本地安装并使其他进程包可用.因此,在远程计算机上,我只需在.bashrc文档中添加相应的行.

不幸的是,当使用xdist分发测试时,只调用“裸”bash,而不加载任何特定于配置文档的rcs.因此,测试失败了一些导入错误,因为argparse是pytest所不能提供的.

有没有办法在开始执行任何pytest代码(需要argparse)之前设置远程主机?换句话说,有没有办法在pytest导入开始之前在主机上添加环境变量?

我尝试使用具有会话范围和autouse = True的灯具,当然这不起作用.而且我尝试了类似的东西

# in conftest.py
import sys    
def pytest_configure_node():
    sys.path.insert(1, "/somepath/")
    print sys.path

这看起来像是在远程主机上执行,但sys.path仍然是主机,并且仍然无法导入argparse模块.

我开始使用测试

py.test --tx ssh=user@server//python="abaqus613 python" -vs --dist=each --rsyncdir foo

这启动了正确的python解释器(Abaqus 6.13-2的Python 2.6.2),但失败了

ImportError: No module named argparse