如何解决针对源代码或包运行测试
我编写了一些 Python 并作为自定义包分发。我在开发时针对源代码运行了一些测试,但我也希望安装包的用户能够针对分布式包运行相同的测试。
我的包遵循以下结构:
my_package
├── MyPackage
│ ├── __init__.py
│ └── my_module.py
├── setup.py
└── tests
└── test_my_package.py
my_package.py
是
def my_function():
print("here!")
return True
而 test_my_package.py
是:
import unittest
import sys
sys.path.insert(0,"../")
from MyPackage.my_module import my_function
class TestMyModule(unittest.TestCase):
def test_somehting(self):
self.assertTrue(my_function())
在操作 sys.path
时,我总是针对开发代码运行测试。有没有办法使用 stuptools 以便我可以针对开发代码运行测试,但用户针对已安装的包运行?
谢谢!
解决方法
当您说“我在开发过程中针对源代码运行的测试”时,存在一种误解。
您应该始终针对打包代码运行测试,因为您希望确保用户将运行的打包代码有效。
您可以使用 tox
运行您的测试,它会自动从您的源代码创建一个包,甚至可以运行不同 Python 版本的测试,例如当前支持的 Python 3.6、3.7 和 3.8。
虽然这种情况很少见,但您的用户也可以运行测试。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。