如何从配置了parametrize的集合中运行单个测试?假设我有以下测试方法:
@pytest.mark.parametrize(PARAMETERS_LIST, PARAMETERS_VALUES)
def test_my_feature(self, param1, param2, param3):
"""
test doc
"""
if param1 == 'value':
assert True
else:
print 'not value'
assert False
Run Code Online (Sandbox Code Playgroud)
我有3个参数,我为它们生成了15个不同可能值的列表,以测试函数.我怎么会只运行其中一个?除了显而易见的方式 - 给出一个值而不是15.
我的自动化框架使用 pytest 设置/拆卸类型的测试而不是固定装置。我也有几个级别的课程:
BaseClass- 最高,所有测试均从中继承
FeatureClass- 中等,所有与程序功能相关的测试都继承自它
TestClass- 进行实际测试
编辑,例如,我将数据库调用更改为简单的打印
我想在所有设置/拆卸中添加数据库报告。即我希望将军BaseClass setup_method将为测试创建一个数据库条目,并teardown_method用结果更改该条目。我已经尝试过,但我似乎无法摆脱运行时当前运行测试的值的方法。有可能吗?如果不是,我还能怎么做呢?
样本:(在base.py中)
class Base(object):
test_number = 0
def setup_method(self, method):
Base.test_number += 1
self.logger.info(color.Blue("STARTING TEST"))
self.logger.info(color.Blue("Current Test: {}".format(method.__name__)))
self.logger.info(color.Blue("Test Number: {}".format(self.test_number)))
# --->here i'd like to do something with the actual test parameters<---
self.logger.info("print parameters here")
def teardown_method(self, method):
self.logger.info(color.Blue("Current Test: {}".format(method.__name__)))
self.logger.info(color.Blue("Test Number: {}".format(self.test_number)))
self.logger.info(color.Blue("END OF TEST"))
Run Code Online (Sandbox Code Playgroud)
(在 my_feature.py 中)
class MyFeature(base.Base):
def setup_method(self, method):
# enable this feature in program …Run Code Online (Sandbox Code Playgroud) 我的团队和我正在使用Pytest + Jenkins使我们的产品测试自动化。我们一直使用python的标准Logging库在测试期间,每次测试之前和之后获取正确的日志消息等。我们具有多层日志记录,我们注销ERROR,WARNING,INFO和DEBUG。我们的记录器的默认值为INFO。我们在测试的主要设置中创建了记录器对象,并将其传递给创建的每个对象,因此我们的所有日志都转到同一记录器。
到目前为止,当我们开发新功能或测试时,我们在本地以DEBUG模式工作,并在将新代码提交给SVN时将其更改回INFO,但是我试图添加使用CLI更改日志记录级别的选项,但是我还没有发现容易实现的东西。我曾经考虑过使用夹具,但据我了解,这些夹具仅用于测试本身,而不是用于安装/拆卸阶段,并且创建日志时所涉及的测试较少。关于如何在CLI命令中添加Pytest选项以支持更改日志记录级别的任何技巧或想法?
我一直在使用jenkins的TRA插件一段时间,突然间,它停止显示我正在运行的某些作业的结果。我收到的消息是:
没有检索到构建数据。您可能需要选择一个模块。
我已经阅读了这个答案,但是已经在Post-build Actions下使用Publish JUnit测试结果报告。
Job的工作空间路径正确,所有测试报告.xml文件都在那里。
我想念什么?
pytest ×3
python ×3
automation ×2
testing ×2
jenkins ×1
linux ×1
logging ×1
nose ×1
python-2.7 ×1