Python中文
首页
教程
问答
标签
搜索
登录
注册
在多个文件上运行Python unittest测试
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我想在高中编程课的评估中加入单元测试。在</p> <p>如果我提交了20份类似这样的文件:</p> <pre><code>def calculateReturn(principle, rate, freq, time): final = principle * (1 + (rate/freq)) ** (freq * time) return final </code></pre> <p>我能用这样的测试用例吗?在</p> ^{pr2}$ <p>如何在20个模块上运行这个简单的测试?在</p> <p><strong>更多信息</strong></p> <p>为了测试,我创建了三个“提交”,它们都显示了计算x^y的不同方法</p> <p>提交1.py:</p> <pre><code>from math import pow def powerFunction(base, power): result = pow(base, power) return result </code></pre> <p>提交2.py:</p> <pre><code>def powerFunction(base, power): result = base ** power return result </code></pre> <p>提交3.py:</p> <pre><code>def powerFunction(base, power): result = 1 for i in range(power): result = result * base return result </code></pre> <p>测试代码为:</p> <pre><code>import unittest import importlib class MyTest(unittest.TestCase): def setUp(self): pass def test_power_3_4(self): self.assertEqual(module.powerFunction(2, 3), 8) files = ['submission1', 'submission2', 'submission3'] for file in files: module = importlib.import_module(file) print module unittest.main() </code></pre> <p>如果运行测试代码,控制台输出仅显示正在测试的submission1:</p> <pre><code>/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 /Users/staff/PycharmProjects/UnitTest/powerTest.py <module 'submission1' from '/Users/staff/PycharmProjects/UnitTest/ submission1.pyc'> . ---------------------------------------------------------------------- Ran 1 test in 0.000s OK Process finished with exit code 0 </code></pre> <p>有趣的是,如果不使用单元测试,我可以使用以下方法正确导入和测试:</p> <pre><code>import importlib files = ['submission1', 'submission2', 'submission3'] for file in files: module = importlib.import_module(file) print module print module.powerFunction(2,3) </code></pre> <p>这里的控制台输出是:</p> <pre><code>/System/Library/Frameworks/Python.framework/Versions/2.7/bin/ python2.7 /Users/staff/PycharmProjects/UnitTest/importlib1.py <module 'submission1' from '/Users/staff/PycharmProjects/UnitTest/ submission1.pyc'> 8.0 <module 'submission2' from '/Users/staff/PycharmProjects/UnitTest/ submission2.pyc'> 8 <module 'submission3' from '/Users/staff/PycharmProjects/UnitTest/ submission3.pyc'> 8 Process finished with exit code 0 </code></pre> <p>很可能unittest模块不是这里最好的方法,但是我仍然对如何实现它感兴趣。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>考虑到这个问题已经持续了一个月没有答案,我已经意识到这是因为我要求的是错误的东西。在</p> <p>据我所知,unittest用于在单个应用程序上运行一组测试。它不是为在一组应用程序上运行单个测试而设计的。在</p> <p>约翰关于调查importlib的建议帮助我走上了成功的道路。谢谢约翰。在</p> <p>在原始post更新中发布的代码似乎是解决我的问题的最合适的解决方案。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
6 回答
无法使用Django\u mssql\u后端迁移到外部hos
10 回答
无法使用Django&Python3.4连接到MySql
10 回答
无法使用Django+nginx上载媒体文件
2 回答
无法使用Django1.6导入名称模式
4 回答
无法使用Django1.7和mongodb登录管理站点
1 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
9 回答
无法使用Djangockedi验证CBV中的字段
1 回答
无法使用Djangocketditor上载图像(错误400)
10 回答
无法使用Djangocron进行函数调用
8 回答
无法使用Djangofiler djang上载文件
1 回答
无法使用Djangokronos
9 回答
无法使用Djangomssql provid
5 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
8 回答
无法使用Djangomssq迁移Django数据库
6 回答
无法使用Djangonox创建用户
8 回答
无法使用Djangopyodb从Django查询SQL Server
4 回答
无法使用Djangopython3ldap连接到ldap
7 回答
无法使用Djangoredis连接到redis
7 回答
无法使用Django中的FK创建新表
6 回答