针对源代码或包运行测试



我已经编写了一些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。

虽然这是非常罕见的事情,但您的用户也可以运行测试。

相关内容

  • 没有找到相关文章

最新更新