【发布时间】:2018-05-07 10:11:39
【问题描述】:
我有以下 Python 应用程序:
.
├── application
│ ├── __init__.py
│ ├── code
│ │ ├── ...
│ └── test
│ ├── ...
└── setup.py
setup.py 可用于安装application。此外,setup.py 可用于运行单元测试,它们位于application/test
现在,我想在application/test 中创建一个单元测试来尝试安装应用程序,如果无法安装则失败。
我对这样一个单元测试的代码是:
import unittest
import os
class TestInstallation(unittest.TestCase):
def test_installation(self):
os.system('virtualenv --python=python3 ENV')
os.system('source ENV/bin/activate')
# install application
os.system('python setup.py install')
self.assertTrue('application' in os.system('pip list'))
os.system('deactivate')
os.system('rm -rf ENV')
但是,这不起作用,因为每个命令都是单独执行的。 (即执行命令启动虚拟环境后,立即退出该环境)。
这就引出了一个问题,什么是测试应用程序是否可以成功安装的好方法。这可以在 Python 中完成,还是仅使用 shell 命令完成?
提前致谢,
帕特里克
【问题讨论】: