运行嵌入在降价文件中的测试的框架。
mdtest的Python项目详细描述
降价测试(mdtest)
以降价格式验证/测试文档的框架。它可以用来进行行为测试驱动开发(BTDD)。这个文档也是自我验证文档的一个活生生的例子(某种SSOT-单一真相来源)。语法灵感来自Concordion,它是syntax。基于python-markdown的实现。在
注意:项目仍处于非常早期的开发阶段!!!它可能是不稳定的,很多事情可能会改变(至少输出和可追溯性)
How to run
只需安装python包。然后在项目根运行中:
mdtest
它将在doc/
中搜索README.md
和降价文件(以.md
结尾)以获得有效的测试(或者在一致性语言中是“example”)。对于这个项目,它将Ran 12 tests+这个测试(这里跳过它以避免递归)。在
有关命令选项的详细信息,请参见doc/CLI.md。在
一致语法
您可以很容易地从doc/BasicConcordionExample.md开始。{cd4}你推荐使用哪个版本。在
mdtest
旨在使用与Concordion相同的语法-它只是提供了不同的fixture实现-python有点“轻量级”。在
基本检测语法依赖于命令,这些命令是特殊的降价链接:
^{pr2}$这定义了运行“带一些命令”命令的“测试用例”(有关详细信息,请参阅“命令示例”部分)。在
注意:命令链接总是“-”。在
Notice2:此测试用例使用内置fixture fixture_basic.py
。更多详情请参见“固定装置”一节。在
Commands examples
- 将文本赋给变量
[text will be value](- "#some_variable")
text will be value - 断言变量值
[text will be value](- "?=#some_variable")
text will be value - 从fixture
[text](- "?=get_first_word(#some_variable)")
text运行一些命令
支持哪些语法的详细信息可以在doc/ConcordionSupport.md中找到
固定装置
测试用例定义包含要使用的设备的注释:
# [Test case](- "python_functions")
这使得mdtest在包含降价文件和内置fixture(如basic
或cli
)的任何路径中查找给定的fixture(在本例中为fixture_pythonfunctions.py
)。fixture只是一个python文件,其中可能包含一些用于检测文档的有用函数。有关详细信息和示例,请参见buildin fixtures或只需查看此文档文档文件中的fixture_*.py
。在
Changes to Concordion Syntax
对原始语法的一些补充包括:
- 每个
block
被分配给变量codeX
,其中X是测试用例中的序列号,所以block is value of code1。这对于验证一些较大的块很有用。在 - “==”提供对块有用的断言。参见上面的示例。在
- 有限的python语法支持
示例和更多详细信息请参见doc/ConcordionExtentions.md
其他通知和练习命中
- 要查看文件在不同引擎下是如何呈现的,可以使用babelmark
- 在keepSpecsSimple上可以找到一些有用的实践
作为一个经验法则,我将使用这个项目进行一些高级验证(仅集成整个产品),并保持文档/规范的最新状态。更多的用例应该作为集成和单元测试来实现。我会努力以这个项目为例,但我只是人,有些错误是不可避免的-如果你知道如何使事情变得更好-让我知道;)
- 项目
标签: