unittest框架下运行print无返回结果解决

无返回结果是因为test runner默认为了Nosetests
在File-Setting-Tools-Python Integrated Tools-Default test runner选择Unittests即可。在这里插入图片描述在这里插入图片描述

### Python `unittest` 框架详解 #### 测试框架概述 Python 的内置模块 `unittest` 提供了一种结构化的方式来编写和运行测试案例。此模块支持测试自动化,共享设置/清理代码用于多个测试,聚合测试成集合以及独立于报告机制运行测试。 #### 基本概念 - **TestCase 类**: 这是 `unittest` 中最重要的组件之一,它包含了实际执行的一系列测试方法。每一个测试都应当是一个以字符串 `"test"` 开头的方法名[^2]。 - **setUp() 和 tearDown() 方法**: 可选的特殊方法,在每个测试函数之前调用 `setUp()` 来准备状态或资源;而在之后则会自动调用 `tearDown()` 清理这些资源[^5]。 #### 组织测试文件 为了保持良好的项目结构并遵循最佳实践,建议将测试放在单独的 `.py` 文件中,并按照约定命名模式来表示它们所对应的被测模块——即采用形如 `test_module_name.py` 的形式[^3]。 #### 编写简单的单元测试 下面展示了一个非常基础的例子,演示如何创建一个继承自 TestCase 的类,并定义几个具体的测试: ```python import unittest class TestStringMethods(unittest.TestCase): @classmethod def setUpClass(cls): print('setup class') def setUp(self): pass def test_upper(self): self.assertEqual('foo'.upper(), 'FOO') def test_isupper(self): self.assertTrue('FOO'.isupper()) self.assertFalse('Foo'.isupper()) if __name__ == '__main__': unittest.main() ``` 上述例子展示了怎样通过断言(assertion)语句验证预期行为是否发生。这里使用了两个常见的断言语句:`assertTrue()` 和 `assertFalse()` 用来判断条件表达式的真假值;而 `assertEquals()` 则比较两个对象是否相等。 #### 集成 Selenium 自动化测试 当涉及到 Web 应用程序的功能性测试时,可以结合像 Selenium WebDriver 这样的工具来进行浏览器操作模拟。虽然 Selenium 不自带任何特定的测试框架,但是很容易将其集成到基于 `unittest` 构建的应用程序当中去[^1]。 例如,可以通过如下方式实现对网页加载后的搜索框输入关键字并提交表单的操作: ```python from selenium import webdriver import unittest class SearchTest(unittest.TestCase): def setUp(self): # 初始化WebDriver实例 self.driver = webdriver.Chrome() def test_search_in_python_org(self): driver = self.driver driver.get("https://www.python.org/") elem = driver.find_element_by_name("q") elem.clear() elem.send_keys("selenium") elem.submit() assert "No results found." not in driver.page_source def tearDown(self): self.driver.quit() if __name__ == "__main__": unittest.main() ``` 这段代码片段首先启动 Chrome 浏览器访问 Python 官方网站主页,接着定位页面上的查询字段发送关键词请求最后确认返回结果页不含指定错误提示信息[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值