pytest - 针对源代码或包运行测试
问题描述
我编写了一些 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。
虽然这将是一件非常罕见的事情,但您的用户也可以运行测试。
推荐阅读
- fullpage.js - Fullpage.js - 仅在某些部分设置 fadingEffect
- bash - tty -s 与检测 shell 是否是交互式的有什么关系?
- swiftui - SwiftUI - 丑陋的动画从纵向切换到横向
- google-chrome - `chrome.tabs.group` 未定义
- php - 修改正则表达式以不匹配点字符
- javascript - 如何创建 Electron Monaco Editor 语言服务器客户端和服务器?
- reactjs - require 没有在带有 ipcRenderer.on 的 Electron-React-Webpack-Typescript 应用程序中定义
- xcode - 没有 Apple 开发者帐户的 XCode:无法安装 .ipa 文件
- python - 我的 python 交易机器人是否错误地计算 MACD?
- python - 如何在熊猫中将一个列分组在不同的间隔上?