发布于2026-07-04 阅读(0)
扫一扫,手机访问
在Ubuntu上做Python单元测试,其实比很多人想象的要简单。Python自带的unittest模块就能搞定大部分需求,而且跟系统环境配合得很默契。下面就把完整的操作流程拆开来讲,从环境检查到测试运行,一步都不落下。

Ubuntu系统通常默认带了Python,但版本可能不同。在终端里先看一眼:
python --version
# 或者
python3 --version
如果显示的是Python 2.x,而你打算用Python 3,那安装一下就好:
sudo apt update
sudo apt install python3
这一步没什么门槛,装完就齐活了。
创建个.py文件,比如test_my_module.py,然后写测试代码。下面是个最简单的例子:
import unittest
def add(a, b):
return a + b
class TestAddFunction(unittest.TestCase):
def test_addition(self):
self.assertEqual(add(1, 2), 3)
self.assertEqual(add(-1, 1), 0)
self.assertEqual(add(-1, -1), -2)
if __name__ == '__main__':
unittest.main()
这里定义了一个add函数,然后写了个测试类,继承unittest.TestCase。测试方法test_addition里用了assertEqual来验证结果是否符合预期。注意类名和方法名都有约定:类名通常带Test前缀,方法名以test_开头,这样unittest才能自动识别它们。
终端里切到文件所在目录,直接跑:
python3 test_my_module.py
如果一切正常,你会看到类似这样的输出:
...
----------------------------------------------------------------------
Ran 3 tests in 0.001s
OK
跑3个测试点(因为assertEqual用了三次),全部通过。如果有失败的,unittest会给出详细差异,方便定位问题。
项目大了之后,测试文件会越来越多。手动一个个跑显然不现实。这时候可以用discover命令:
python3 -m unittest discover
它会自动搜索当前目录及子目录下所有以test开头的文件(默认模式),然后一次性运行所有测试用例。省心省力。
为了避免不同项目之间的包冲突,最好在虚拟环境里搞测试。Ubuntu上创建虚拟环境很简单:
python3 -m venv myenv
source myenv/bin/activate
激活后,终端前缀会变成(myenv),然后你随便装包、跑测试,都不会影响系统全局的Python环境。测试完了用deactivate退出。
单元测试的真正价值在于自动化——每次提交代码都能自动触发测试。可以把上面的命令写到CI配置文件里(比如GitHub Actions、GitLab CI等),这样多人协作时,谁改出了bug,测试一跑就现原形。
当然,如果你的项目需求更复杂,也可以考虑pytest这个第三方库,它语法更简洁、插件生态更丰富,但核心逻辑跟unittest是相通的。从基础做起,先跑通unittest,再按需升级,这路径最稳。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8