- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试测试一个非常简单的函数(由于多次尝试测试使用参数解析器作为参数的更复杂的函数失败)。
# from ./runfile.py
import argparse
import os
def get_input_args():
parser = argparse.ArgumentParser()
parser.add_argument('--priv_raw_name', default='private_data.csv', type=str,
help='Set raw private/source datafile name')
args = parser.parse_args()
return args
# from ./tests/test_args.py
import pytest
from runfile import get_input_args
def test_parser():
parser = get_input_args()
assert 1
当我运行脚本 runfile.py
时,一切都按预期工作,但是当我调用 pytest tests/test_args.py
时,我收到下面无法识别的参数错误消息。
我已经尝试设置一个 conftest.py
文件并使用 addoption,但我似乎遇到了更多错误,远远超出了我修复的经验。任何人都可以指出如何使用核心脚本中的默认参数运行测试但不调用 tests/test_args.py
作为实际测试本身的参数的正确方向吗?
(Project_Cascade) ➜ Project_Cascade git:(WIP) ✗ pytest tests/test_args.py
========================================================================= test session starts =========================================================================
platform darwin -- Python 3.6.5, pytest-4.3.1, py-1.8.0, pluggy-0.9.0
rootdir: /Users/davidmellor/Code/Spend_Network/Data_Projects/Project_Cascade, inifile:
collected 1 item
tests/test_args.py F [100%]
============================================================================== FAILURES ===============================================================================
_____________________________________________________________________________ test_parser _____________________________________________________________________________
def test_parser():
> parser = get_input_args()
tests/test_args.py:5:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
runfile.py:50: in get_input_args
args = parser.parse_args()
/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/argparse.py:1733: in parse_args
self.error(msg % ' '.join(argv))
/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/argparse.py:2389: in error
self.exit(2, _('%(prog)s: error: %(message)s\n') % args)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = ArgumentParser(prog='pytest', usage=None, description=None, formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True)
status = 2, message = 'pytest: error: unrecognized arguments: tests/test_args.py\n'
def exit(self, status=0, message=None):
if message:
self._print_message(message, _sys.stderr)
> _sys.exit(status)
E SystemExit: 2
/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/argparse.py:2376: SystemExit
------------------------------------------------------------------------ Captured stderr call -------------------------------------------------------------------------
usage: pytest [-h] [--priv_raw_name PRIV_RAW_NAME]
pytest: error: unrecognized arguments: tests/test_args.py
最佳答案
问题来自parser.parse_args
接受可选的 args
参数的调用。如果未提供此参数,则参数取自 sys.argv
.
当你执行pytest tests/test_args.py
时,sys.argv
包含['pytest', 'tests/test_args.py']
。列表的第一个元素是被调用的程序,第二个是第一个参数。
因此,在没有其 args
参数的情况下调用 parser.parse_args
将 tests/test_args.py 视为第一个声明参数的值解析器。幸运的是,它无法解析它并且出现错误并显示显式消息 unrecognized arguments: tests/test_args.py。
要检查它,您可以在调用 parser.parse_args
和检查 sys.argv
之前在测试中添加断点
调用 pytest
而不指定要运行的文件(只是 pytest
)应该可以顺利通过。
无论如何,无论以何种方式运行,您的测试都应该通过。为此,您只需为测试中的 parser.parse_args
调用指定明确的 args
。
例如,传递一个空列表将起作用:
parser.parse_args([])
但您可能希望使用 priv_raw_name
选项的值来测试它:
parser:parse_args(['--priv_raw_name', 'any/test/path'])
关于python - Pytest - 测试解析器错误 : Unrecognised arguments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55259371/
我正在尝试在我的应用程序中实现用户注册。我使用 Node.js Express 创建后端,并在我在路由器文件夹中创建的 .js 文件中传递插入查询。我也在 app.js 中添加了所有必要的东西。 以下
我有一个数据模型,其中包含一个名为“图像”的实体。这将用于存储图像。 以前我将图像作为特定实体的属性。 我设置了可变形的东西并且一切正常。 但是,现在我已将其移动到一个单独的实体中,但我不断收到错误。
运行 Docker 容器... docker run --name mongodb -d mongo:3.4-xenial --expose 27017 导致日志中出现错误“解析命令行时出错:无法识别
我正在尝试测试一个非常简单的函数(由于多次尝试测试使用参数解析器作为参数的更复杂的函数失败)。 # from ./runfile.py import argparse import os def ge
当我在这里使用 WINLess 编译这段代码时出现错误: .icon-text-shadow (@icon-text-shadow: 0.0625rem 0.0625rem rgba(132, 108
这是我的主要代码: @IBOutlet weak var avatar: UIImageView! @IBOutlet weak var nickname: UIButton!
我有一个学校项目,我要更改 CQL(Caasandra 查询语言),之后我需要创建我的特定 Cassandra Java 驱动程序,问题是我无法运行驱动程序的源代码在 Eclipse 上,我尝试了很多
我遇到了无法识别的选择器错误,因为我的应用程序在运行时调用方法时解析了错误的库。 内容: 我正在使用 Reachability 和一个私有(private)框架,我们会说 FooLib 我收到以下运行
背景故事 我目前正在创建一个自定义类来处理/模仿 Facebook 菜单应用程序的外观,我在一个单独的项目(工作)中创建了这个功能,并认为让代码可重用是个好主意。 问题 我收到“无法识别的选择器发送到
我有一个自定义按钮类: CustomButton.h 文件: @interface CustomButton : UIButton @property (nonatomic, retain) NSSt
我有一个简单的 QueryOver var q = SessionInstance.QueryOver().Where(p => p.Number.Equals(number)); Number 字段
基于本指南: https://docs.opsmanager.mongodb.com/current/tutorial/install-simple-test-deployment/ 我正在安装 Mo
我正在尝试创建简单的 Cabal 可执行包。 Cabal user guide的“运行可执行文件”部分说: You can have Cabal build and run your executab
基于本指南: https://docs.opsmanager.mongodb.com/current/tutorial/install-simple-test-deployment/ 我正在安装 Mo
我的应用程序委托(delegate)方法中有一些代码应该将对象发送到 View Controller 。由于某种原因,它抛出一个错误:“无法识别的选择器发送到实例” 在 View Controller
我正在 Xcode (4.4.1) 上构建一个 iOS (5.1) 应用程序,我几乎完成了第一阶段的开发,但我卡在了最后一行代码上。我一直在使用 Kumulos 作为后端和 API 解决方案,目前所有
我正在发送一些对象,当我将表格中的单元格按到另一个 View 时,它必须显示该单元格的详细信息。 当我尝试更改标签(在第二个 View 中)文本时,我得到: Terminating app due t
我在 Nhibernate3.1 中有一个 QueryOver 查询 var q = SessionInstance.QueryOver() .Where(x => IsActiv
** 下面描述的所有内容都是以编程方式完成的。不使用 Storyboard ** 在我的 ViewController 中,我创建了一个包含按钮和标签的 CustomCheckBoxContainer
对于下面的代码片段:错误发生在 setObject: forKey: response <--is an NSDictionary if(response){ NSMu
我是一名优秀的程序员,十分优秀!