python测试用例生成器

nell的Python项目详细描述


马修·奥尔特尔,moertle@gmail.com>;

<%pre
    import sys
%>

::NT(start)
    : 'A' # comment
    | 'B' <% print($$) %>
    ;

<%post
    print($$)
%>

常数

生产中的常量可以由双引号字符串、单引号字符串、十进制、十六进制或八进制数字组成。

A: "A" | 'A' | 65 | 0x41 | 0101;

串联

当产品被空格分隔时,它们被连接起来。

CONCAT: "CONC" 0x41 "TEN" 65 "TION";

选择

当存在多个产品时,随机选择一个。

NUMBER: '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';

分组

GRP: ('A'|'B') ('C'|'D');

可能的值是“ac”、“ad”、“bc”或“bd”。

范围

NUM1: ('0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9'){3};
NUM2: ('0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9'){1,5};

num1将生成一个3位数的数字,而num2将生成一个1到5位数之间的随机长度的数字。

切片

产品的子字符串可以使用索引引用。

SLICE1: "0123456789" [:];    // 0123456789
SLICE2: "0123456789" [4];    // 4
SLICE3: "0123456789" [:4];   // 0123
SLICE4: "0123456789" [4:];   // 456789
SLICE5: "0123456789" [2:8];  // 234567
SLICE6: "0123456789" [-4];   // 6
SLICE7: "0123456789" [-4:];  // 6789
SLICE8: "0123456789" [:-4];  // 012345
SLICE9: "0123456789" [2:-2]; // 234567

每个产品的输出都记录在评论中。

内联python

<%pre
    import base64
%>

NT: %base64.b64encode('string');

非终端

NT1: "The value of NT2 is " NT2;
NT2: "substitution";

语义动作

$$

PSA1: PSA2 <% var = $$ %>;
PSA2: "one" | "two";

在本例中,python变量var将包含“one”或“two”以供将来使用。

可变非端子

$*

NT1: $NT2;

$NT2:
  "I WILL BE SUBSTITUTED INTO NT1 IN LOWERCASE"
  <%
    $* = $$.lower()
  %>
  ;

反向参考

BR: "A" | "B";
NT: BR \BR;
$BR: ("a"|"b") <% $* = $$.upper() %>;
NT: $BR \$BR;

在这两种情况下,nt都将生成字符串“aa”或“bb”,而不是“ab”或“ba”。

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

推荐PyPI第三方库


热门话题
用cucumberjvm执行java异步步骤   java通过Jackson2导出/导入JSON文件。9.7   java Tomcat在页面加载时给出500错误   将filereader合并到代码中的java问题   从GUI java将对象属性写入文件时发生swing错误   java简单程序,用于检查输入字符串是否为关键字(指定了关键字)   java如何在布局之间滑动时打开音频文件?   hibernate解析Java。lang.ClassCastException   java如何解决记录测试结果的Jenkins构建错误?   Java:在重写文件之前检查文件是否需要更新的最佳方法是什么?   mongodb在Java中重用数据库连接   java Hibernate(n+1)使用非k连接选择   java如何在Spring批处理中创建JSON文件读取器   java将MuPDF导入Android应用程序   字典我对Java中的多态性有疑问