导入模块到测试目录

弗洛里安·法斯迈尔

我想从我的测试文件夹中导入业务代码。

我使用 安装了我的代码python setup.py install,它将代码复制到 anaconda 站点包文件夹中。但我想在我的开发中测试我的代码。目录,因为我不想在任何小的更改后不断安装我的代码来测试它。

我正在使用 Anaconda 和 Spyder IDE。

这是我的目录结构:

dev
└── myproject
    ├── setup.py
    ├── myproject
    │   ├── __init__.py
    │   └── myproject.py
    └── test
        ├── __init__.py
        └── test_importprojecthere.py

我从这里拿了它:使用典型的测试目录结构运行单元测试

现在,我只是想导入一个函数。

# dev: projectfile.py
def hello():
    print('Hello world!')

这是我调用它的地方。

# dev: test_importprojecthere.py
from myproject.projectfile import hello # Use installed package.
hello()

更多信息:

弗洛里安·法斯迈尔

当你创建的包,你不想在你的站点包进行安装。

不使用

  • python setup.py install

相反,使用

  • python setup.py develop 要么...
  • pip install -e .

这些命令使用symlinks安装您的设置它不是创建副本,而是链接到您的实际项目。因此,当您修改它时,它会立即在任何地方进行修改。

多亏了这一点,您将不必更新/安装或执行任何操作来运行单元测试。

-- “但是现在,每次我修改我的包时,所有使用它的东西都可能会损坏。我不想破坏我的生产代码!”

别担心!这就是我们使用虚拟环境的原因。创建包时,请确保创建了一个虚拟环境,您可以命名该环境,例如“myproject_dev”。

在开发中。环境 使用,python setup.py develop以便您可以在其上进行开发。

在产品中。环境 使用python setup.py install,以便您使用不会突然更改的副本。你不会修改它,因为在 prod 中,你使用你的包,你不会在它上面开发!使事情简单安全。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章