使用pytest测试python脚本-权限问题

使用pytest测试python脚本-权限问题,python,python-3.x,testing,pytest,Python,Python 3.x,Testing,Pytest,我已经使用pytest对我的模块进行了单元测试,没有问题。我还想测试我的脚本,它导入了一些模块,但是我得到了一个权限错误。我刚开始编写更大的python项目,这些项目实际上需要测试和维护,所以我的目录结构可能不是最优的,所以如果是这样,请告诉我。我的目录结构看起来像- parent modules __init__.py module1.py ... test ... test_script.py script.py 我的测试代码: import os import

我已经使用pytest对我的模块进行了单元测试,没有问题。我还想测试我的脚本,它导入了一些模块,但是我得到了一个权限错误。我刚开始编写更大的python项目,这些项目实际上需要测试和维护,所以我的目录结构可能不是最优的,所以如果是这样,请告诉我。我的目录结构看起来像-

parent
 modules
  __init__.py
  module1.py
  ...
 test
  ...
  test_script.py
 script.py
我的测试代码:

import os
import subprocess
import train

def test_train_dataset1():
  #run the script
  p = subprocess.Popen(['./train.py', 'test_models', 'test1', 'data/temp.json', '--isfile'])
  #more code to check output
我的错误:

PermissionError: [Errno 13] Permission denied: './train.py'
权限被拒绝:“./train.py”肯定表示该文件不可执行。要修复:

chmod a+x ./train.py
还要验证它是否有正确的shebang线/usr/bin/python等


另外,当您导入火车时,您是否从同一火车导入。py?如果没有-您不应该给脚本起与要导入的模块/包相同的名称。

是否使用任何UNIX系统?我正在使用max OS XChange to p=subprocess.Popen['python','train.py','test_models…'您是最棒的!谢谢