安装了诱惑pytest适配器后出错

问题描述 投票:1回答:2

我试图在Windows 8机器上配置Allure(2.6.0)和Pytest(3.6xx)。我能够运行pytest并生成jUnit xml报告文件,稍后我可以将其传递给诱惑(诱惑服务器jUnitXmlFile.xml)并且它工作正常。

我需要的是Allure提供的附加功能(元数据,附件等),所以我下载了pytest-allure-adapter。

所以我在我的venv中安装了以下软件包:

allure-pytest==2.4.1
allure-python-commons==2.4.1
pytest-allure-adaptor==1.7.10
...

如果我现在运行py.test.exe,我收到以下错误:

(venv) c:\TestAutomation>py.test.exe
Traceback (most recent call last):
  File "C:\Tools\WinPython\python-3.6.5.amd64\Lib\runpy.py", line 193, in 
_run_module_as_main
    "__main__", mod_spec)
  File "C:\Tools\WinPython\python-3.6.5.amd64\Lib\runpy.py", line 85, in 
_run_code
    exec(code, run_globals)
  File "c:\TestAutomation\venv\Scripts\py.test.exe\__main__.py", line 9, in 
<module>
  File "c:\testautomation\venv\lib\site-packages\_pytest\config.py", line 52, 
in main
    config = _prepareconfig(args, plugins)
  File "c:\testautomation\venv\lib\site-packages\_pytest\config.py", line 
163, in _prepareconfig
    pluginmanager=pluginmanager, args=args)
  File "c:\testautomation\venv\lib\site-packages\pluggy\__init__.py", line 
617, in __call__
    return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
  File "c:\testautomation\venv\lib\site-packages\pluggy\__init__.py", line 
222, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "c:\testautomation\venv\lib\site-packages\pluggy\__init__.py", line 
216, in <lambda>
    firstresult=hook.spec_opts.get('firstresult'),
  File "c:\testautomation\venv\lib\site-packages\pluggy\callers.py", line 
196, in _multicall
    gen.send(outcome)
  File "c:\testautomation\venv\lib\site-packages\_pytest\helpconfig.py", line 
68, in pytest_cmdline_parse
    config = outcome.get_result()
 File "c:\testautomation\venv\lib\site-packages\pluggy\callers.py", line 76, 
in get_result
    raise ex[1].with_traceback(ex[2])
 File "c:\testautomation\venv\lib\site-packages\pluggy\callers.py", line 180, 
in _multicall
    res = hook_impl.function(*args)
  File "c:\testautomation\venv\lib\site-packages\_pytest\config.py", line 
941, in pytest_cmdline_parse
    self.parse(args)
 File "c:\testautomation\venv\lib\site-packages\_pytest\config.py", line 
1091, in parse
    self._preparse(args, addopts=addopts)
  File "c:\testautomation\venv\lib\site-packages\_pytest\config.py", line 
1053, in _preparse
    self.pluginmanager.load_setuptools_entrypoints('pytest11')
  File "c:\testautomation\venv\lib\site-packages\pluggy\__init__.py", line 
403, in load_setuptools_entrypoints
    self.register(plugin, name=ep.name)
  File "c:\testautomation\venv\lib\site-packages\_pytest\config.py", line 
260, in register
    ret = super(PytestPluginManager, self).register(plugin, name)
  File "c:\testautomation\venv\lib\site-packages\pluggy\__init__.py", line 
254, in register
    hook._maybe_apply_history(hookimpl)
  File "c:\testautomation\venv\lib\site-packages\pluggy\__init__.py", line 
650, in _maybe_apply_history
    res = self._hookexec(self, [method], kwargs)
  File "c:\testautomation\venv\lib\site-packages\pluggy\__init__.py", line 
222, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "c:\testautomation\venv\lib\site-packages\pluggy\__init__.py", line 
216, in <lambda>
    firstresult=hook.spec_opts.get('firstresult'),
  File "c:\testautomation\venv\lib\site-packages\pluggy\callers.py", line 
201, in _multicall
    return outcome.get_result()
  File "c:\testautomation\venv\lib\site-packages\pluggy\callers.py", line 76, 
in get_result
    raise ex[1].with_traceback(ex[2])
  File "c:\testautomation\venv\lib\site-packages\pluggy\callers.py", line 
180, in _multicall
    res = hook_impl.function(*args)
  File "c:\testautomation\venv\lib\site-packages\allure_pytest\plugin.py", 
line 20, in pytest_addoption
   help="Generate Allure report in the specified directory (may not exist)")
  File "c:\testautomation\venv\lib\site-packages\_pytest\config.py", line 
759, in addoption
    raise ValueError("option names %s already added" % conflict)
 ValueError: option names {'--alluredir'} already added

pytest-allure-adapter有什么问题吗?有人有类似的问题吗?

python pytest allure
2个回答
5
投票

allure-python-commons与pytest-allure-adapter不兼容。您需要删除旧插件并重新安装allure-pytest和allure-python-commons。


0
投票

你的pytest-allure-adapter是不兼容的。如果你有python2-只需要运行这个pip命令

pip uninstall pytest-allure-adaptor

如果你有python3,则运行此命令 -

pip3 uninstall pytest-allure-adaptor
© www.soinside.com 2019 - 2024. All rights reserved.