运行嵌入在降价文件中的测试的框架。

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(如basiccli)的任何路径中查找给定的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上可以找到一些有用的实践

作为一个经验法则,我将使用这个项目进行一些高级验证(仅集成整个产品),并保持文档/规范的最新状态。更多的用例应该作为集成和单元测试来实现。我会努力以这个项目为例,但我只是人,有些错误是不可避免的-如果你知道如何使事情变得更好-让我知道;)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在Eclipse中使用ctrlshiftt而不是ctrlshiftr有什么好处?   java自动装箱概念SCJP   java如何使用JAXR和Resteasy、Angular和Wildfly10处理COR   java如何在整数数组中动态添加元素?   JAVA从继承生成器模式返回父对象继承   java问题调试生产者消费者问题   java MQ:已达到通道的最大实例数   JavaPowerMockMockito:我试图stubb的方法最终被调用   java Hibernate将多个列映射到一个表   在java中,将字符串中的单词大写,但跳过字符串中的数字和多余空格或符号   使用Eclipse将Java项目导出到JAR时出现“重复条目”错误   java使用eclipselink在实体表上指定NullConstraint   <Java>我可以在TCPIP中使用多个服务器socket吗?   带有自定义视图的java AlertDialog:调整大小以包装视图的内容   如何从用C#编写的web服务生成用于java的SOAP API?