小编Avi*_*hen的帖子

pytest参数化并运行单个测试

如何从配置了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.

python testing automated-tests pytest python-2.7

10
推荐指数
2
解决办法
3172
查看次数

pytest:在设置/拆卸方法期间获取参数值

我的自动化框架使用 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)

python automation nose pytest

6
推荐指数
1
解决办法
4917
查看次数

pytest-从运行测试的CLI命令指定日志级别

我的团队和我正在使用Pytest + Jenkins使我们的产品测试自动化。我们一直使用python的标准Logging库在测试期间,每次测试之前和之后获取正确的日志消息等。我们具有多层日志记录,我们注销ERROR,WARNING,INFO和DEBUG。我们的记录器的默认值为INFO。我们在测试的主要设置中创建了记录器对象,并将其传递给创建的每个对象,因此我们的所有日志都转到同一记录器。

到目前为止,当我们开发新功能或测试时,我们在本地以DEBUG模式工作,并在将新代码提交给SVN时将其更改回INFO,但是我试图添加使用CLI更改日志记录级别的选项,但是我还没有发现容易实现的东西。我曾经考虑过使用夹具,但据我了解,这些夹具仅用于测试本身,而不是用于安装/拆卸阶段,并且创建日志时所涉及的测试较少。关于如何在CLI命令中添加Pytest选项以支持更改日志记录级别的任何技巧或想法?

python linux logging command-line-interface pytest

5
推荐指数
3
解决办法
6237
查看次数

Jenkins测试结果分析器不显示结果

我一直在使用jenkins的TRA插件一段时间,突然间,它停止显示我正在运行的某些作业的结果。我收到的消息是:

没有检索到构建数据。您可能需要选择一个模块。

我已经阅读了这个答案,但是已经在Post-build Actions下使用Publish JUnit测试结果报告

Job的工作空间路径正确,所有测试报告.xml文件都在那里。

我想念什么?

testing automation jenkins jenkins-plugins

5
推荐指数
1
解决办法
2896
查看次数