我正在将pytest 5.4.1和python 3.6一起使用
代码:
import unittest
class TestStringMethods(unittest.TestCase):
def test_upper(self):
self.assertEqual('foo'.upper(), 'FOO')
if __name__ == '__main__':
unittest.main()
运行pytest
会出现以下错误:
Testing started at 06:08 ...
"C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\python.exe" "C:\Program Files\JetBrains\PyCharm Community Edition 2019.2\helpers\pycharm\_jb_pytest_runner.py" --path E:/Folder1/Project1/src/Project1.Api/tests/test1.py
Launching pytest with arguments E:/Folder1/Project1/src/Project1.Api/tests/test1.py in E:\Folder1\Project1\src\Project1.Api\tests
============================= test session starts =============================
platform win32 -- Python 3.6.5, pytest-5.4.1, py-1.5.3, pluggy-0.13.1 -- C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\python.exe
cachedir: .pytest_cache
rootdir: E:\Folder1\Project1\src\Project1.Api\tests
plugins: arraydiff-0.2, cov-2.8.1, doctestplus-0.1.3, openfiles-0.3.0, remotedata-0.2.1
collecting ... collected 1 item
test1.py::TestStringMethods::test_upper ERROR [100%]
test setup failed
item = <TestCaseFunction test_upper>
def pytest_runtest_setup(item):
> remote_data = item.get_marker('remote_data')
E AttributeError: 'TestCaseFunction' object has no attribute 'get_marker'
c:\program files (x86)\microsoft visual studio\shared\anaconda3_64\lib\site-packages\pytest_remotedata\plugin.py:59: AttributeError
Assertion failed
=================================== ERRORS ====================================
_______________ ERROR at setup of TestStringMethods.test_upper ________________
item = <TestCaseFunction test_upper>
def pytest_runtest_setup(item):
> remote_data = item.get_marker('remote_data')
E AttributeError: 'TestCaseFunction' object has no attribute 'get_marker'
c:\program files (x86)\microsoft visual studio\shared\anaconda3_64\lib\site-packages\pytest_remotedata\plugin.py:59: AttributeError
=========================== short test summary info ===========================
ERROR test1.py::TestStringMethods::test_upper - AttributeError: 'TestCaseFunc...
============================== 1 error in 0.04s ===============================
Process finished with exit code 0
Assertion failed
Assertion failed
可能是什么问题?
答案 0 :(得分:2)
问题在于get_marker
已重命名为get_closest_marker
。在GitHub上的this issue中,您可以看到@arvindpdmn建议将pytest-remotedata==0.3.0
升级到pytest-remotedata==0.3.2
,因此,假设您使用pip
安装依赖项,请运行以下命令:>
pip install -U pytest-remotedata
答案 1 :(得分:1)
从错误输出中可以看出,问题出在pytest-remotedata软件包中。
AttributeError: 'TestCaseFunction' object has no attribute 'get_marker'
c:\program files (x86)\microsoft visual studio\shared\anaconda3_64\lib\site-packages\pytest_remotedata\plugin.py:59: AttributeError
将pytest-remotedata
软件包升级到最新版本(0.3.2)后,该错误已解决:
pip install --upgrade pytest-remotedata