Python3认证测试
godkjenn的Python项目详细描述
- godkjenn
- /go:kjen/ Approve (Norwegian)
Python3的认可测试。在
快速启动
安装软件包:
pip install .
以及pytest插件依赖关系:
^{pr2}$(这可能不是绝对必要的,因为唯一的插件依赖项是pytest)。在
然后,您可以在pytest测试中使用godkjennfixture:
deftest_my_test(godkjenn):new_output=my_function()godkjenn.verify(new_output)# new_output must be a bytes object
godkjenn将查找该测试函数的现有接受的值。如果找到可接受的数据并且它匹配 新的数据,然后测试通过。否则测试失败。在
如果测试失败,这可能意味着a)您的代码实际上已损坏,或者b)您希望在中接受新的输出 先前接受值的位置(如有)。戈德詹将指导你如何处理这种情况。在
原则
批准测试的原则很简单。给定一个你认为正确的函数或程序,你就可以存储它的输出 对于给定的输入。这是其输出的accepted或golden版本。然后,当你改变你的代码,你 重新生成输出(我们称之为received输出)并将其与接受的版本进行比较。如果匹配,则 测试通过。否则,它就会失败。在
测试失败可能意味着两件事之一。首先,这可能意味着你实际上破坏了你的程序,需要修复它 以便接收到的输出与接受的输出相匹配。其次,这可能意味着接收到的输出现在是正确的,即接受的 输出现在已过期,您需要用接收到的更新已接受的输出。在
作为一个批准测试工具,godkjenn旨在简化和简化这种测试。在
核心要素
godkjenn有几个核心元素。这些是认证测试系统中独立的部分 任何特定的测试框架。一般来说,您不需要直接使用它们;集成 用你的测试框架隐藏大部分底层细节。在
保险库
Vault是存储已接受输出的位置。(术语vault有点像是在玩弄文字:接受的输出是 “黄金”,你把金子藏在金库里。)
vault抽象定义了一个用于存储和检索已接受(和已接收)输出的API。在
godkjenn提供了一个简单的保险库FSVault,它将数据存储在文件系统中。可提供其他拱顶 通过插件系统。在
验证
核心验证算法将新接收到的数据与给定测试的接受数据进行比较。如果有 不匹配或不可接受的输出存在,这将触发测试失败并指示用户下一步要做什么。在
差分
{当用户尝试提供来自tt2的测试时,{2尝试提供一个不同于 被接受的。用户可以提供一个产生这种差异的算法
配置
在内部,godkjenn使用一个简单的dict来保存其配置信息。顶级值 作为键存储在dict中。每个插件类型都有一个指向dict映射的顶级条目 插件名称到插件特定配置。例如,配置可能如下所示:
{ 'vault': { 'fs-vault': { ... configuration for fs-vault plugin } } }
由于测试框架提供了不同的配置方法,godkjenn将其留给每个测试框架 集成以确定如何加载配置。理想情况下,godkjenn将有足够理智的默认值来工作 没有明确的配置;这是一个愿望,可能不是在所有情况下都可行。在
有关配置godkjenn的hwo示例,请参阅“examples”目录。在
配置pytest
pytest集成在pytest INI配置中查找“godkjenn_config”条目。Pytest configuration is fairly complex,所以我们将让它的文档告诉您如何 指定INI文件。最后,“godkjenn_config”条目应该包含TOML文件的文件名 包含godkjenn配置。这个路径是相对于pytest根目录来解释的;如果不是的话 指定,godkjenn寻找“戈德克詹.托姆“(同样在pytest根目录中)。缺少配置文件是正常的,并且 不被视为错误。在
例如,您的pytest.ini可能如下所示:
[pytest] godkjenn_config = godkjenn.toml
那么您的godkjenn.toml文件可能如下所示:
[godkjenn] vault_type = 'fs-vault'
这将指定您希望使用“fs vault”插件来存储结果。如果有配置选项 对于“fs vault”插件,TOML文件可能还包括以下内容:
[godkjenn.vault.fs-vault] option_a = 42 option_b = "so long and thanks for all the fish"
- 项目
标签: