Pytest BDD:尝试使用场景装饰器时“TypeError:'NoneType'对象不可调用”

问题描述

我有许多测试具有相同的功能文件格式,但传递不同的参数并断言不同的 json 响应,因此我想在 scenarios 上使用 scenario 装饰器。我尝试使用的装饰器是:

@scenarios("../../features/errors.feature")

当我尝试使用 scenarios 时,我收到以下错误,我无法真正找出问题所在:

==================================== ERRORS ====================================
_______ ERROR collecting functional/tests/test_api/test_api_error.py ________
src/test/functional/tests/test_api/test_api_error.py:17: in <module>
    def get_data(v4_auth,get_url,from_date,to_date):
E   TypeError: 'nonetype' object is not callable
=========================== short test summary info ============================
ERROR src/test/functional/tests/test_api/test_api_error.py - TypeError: 'N...
!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!
=============================== 1 error in 0.11s ===============================

如果我使用 scenario 装饰器并为特征文件中的每个场景提供一个带通行证的存根方法,那么这可以正常工作,但现在我有很多本质上冗余的函数只是为了声明场景。

例如:

@scenario(
    "../../features/error.feature","Retrieve data with an invalid from date format",)
def invalid_from_date():
    pass

@scenario(
    "../../features/errors.feature","Retrieve data with an invalid to date format",)
def invalid_to_date():
    pass

@scenario(
    "../../features/errors.feature","Retrieve data with all invalid params",)
def invalid_params():
    pass

当使用 scenario 装饰器时,所有装置都可以正常工作并且测试全部通过,我通过阅读文档认为我需要做的就是使用 scenarios 装饰器代替它。>

它落在的那一行总是它试图调用的第一个函数的声明。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...