Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
易企天创
zendata
提交
99a8f44c
Z
zendata
项目概览
易企天创
/
zendata
9 个月 前同步成功
通知
17
Star
2
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Z
zendata
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
99a8f44c
编写于
8月 21, 2020
作者:
aaronchen2k2k
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
close tasks#7684
上级
c4a629d5
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
70 addition
and
12 deletion
+70
-12
demo/advanced.yaml
demo/advanced.yaml
+5
-3
demo/test/misc.yaml
demo/test/misc.yaml
+11
-5
demo/test/nested1.yaml
demo/test/nested1.yaml
+14
-0
demo/test/nested2.yaml
demo/test/nested2.yaml
+11
-0
src/gen/generator.go
src/gen/generator.go
+16
-1
src/gen/list.go
src/gen/list.go
+11
-3
src/model/definition.go
src/model/definition.go
+2
-0
未找到文件。
demo/advanced.yaml
浏览文件 @
99a8f44c
...
...
@@ -8,6 +8,8 @@ fields:
-
field
:
field_step_negative
# 区间可以指定步长。
range
:
z-a:-2
# 9,7,5,4...
loop
:
1-3
loopfix
:
"
|"
prefix
:
"
["
postfix
:
"
]
\t
"
...
...
@@ -41,9 +43,9 @@ fields:
use
:
large{3}
-
field
:
field_use_yaml
range
:
test/misc.yaml{2},1-9:R{3
}
prefix
:
"
===
"
postfix
:
"
====
\t
"
range
:
9-7,test/nested1.yaml{5
}
prefix
:
"
***
"
postfix
:
"
***
\t
"
-
field
:
field_literal
range
:
"
`0000-00`,`AA[2,a-z]`,[1-3]:2{3},`[1-3]:2{3}`"
...
...
demo/test/misc.yaml
浏览文件 @
99a8f44c
...
...
@@ -5,25 +5,31 @@ version: 1.0
fields
:
-
field
:
test0
range
:
"
''"
range
:
1-9
loop
:
2-3
loopfix
:
"
|"
# width: 10
-
field
:
test1
range
:
9-5:R{2}
prefix
:
"
[
"
postfix
:
"
]
\t
"
prefix
:
"
"
postfix
:
"
\t
"
# width: 5
-
field
:
test2
range
:
[
user-2
,
user3
,
user4
,
user5
,
user6
]
:R
loop
:
2-3
loopfix
:
"
|"
prefix
:
"
[
"
postfix
:
"
]
\t
"
prefix
:
"
"
postfix
:
"
\t
"
# width: 25
-
field
:
test3
range
:
test/test.yaml{2},a-z:R{3}
prefix
:
"
---"
postfix
:
"
---
\t
"
# width: 25
-
field
:
field_with_children
fields
:
-
field
:
child1
...
...
demo/test/nested1.yaml
0 → 100644
浏览文件 @
99a8f44c
title
:
测试文件
desc
:
author
:
zentao
version
:
1.0
fields
:
-
field
:
test0
range
:
1-9
postfix
:
"
;
\t
"
-
field
:
test1
range
:
a-c,nested2.yaml{2}
prefix
:
"
==="
postfix
:
"
===
\t
"
\ No newline at end of file
demo/test/nested2.yaml
0 → 100644
浏览文件 @
99a8f44c
title
:
测试文件
desc
:
author
:
zentao
version
:
1.0
fields
:
-
field
:
test0
range
:
1-9
loop
:
2-3
loopfix
:
"
|"
postfix
:
"
,
\t
"
\ No newline at end of file
src/gen/generator.go
浏览文件 @
99a8f44c
...
...
@@ -4,6 +4,7 @@ import (
"errors"
"fmt"
"github.com/easysoft/zendata/src/model"
commonUtils
"github.com/easysoft/zendata/src/utils/common"
fileUtils
"github.com/easysoft/zendata/src/utils/file"
i118Utils
"github.com/easysoft/zendata/src/utils/i118"
logUtils
"github.com/easysoft/zendata/src/utils/log"
...
...
@@ -40,6 +41,10 @@ func GenerateForDefinition(defaultFile, configFile string, fieldsToExport *[]str
field
.
From
=
vari
.
Def
.
From
}
values
:=
GenerateForField
(
&
field
,
true
)
if
field
.
Rand
{
rows
=
randomValues
(
rows
)
}
vari
.
Def
.
Fields
[
index
]
.
Precision
=
field
.
Precision
topFieldNameToValuesMap
[
field
.
Field
]
=
values
...
...
@@ -178,7 +183,7 @@ func GenerateFieldValuesForDef(field *model.DefField) []string {
values
=
append
(
values
,
val
)
count
++
isRandomAndLoopEnd
:=
(
*
field
)
.
IsRand
&&
(
*
field
)
.
LoopIndex
==
(
*
field
)
.
LoopEnd
isRandomAndLoopEnd
:=
!
(
*
field
)
.
IsReferYaml
&&
(
*
field
)
.
IsRand
&&
(
*
field
)
.
LoopIndex
==
(
*
field
)
.
LoopEnd
// isNotRandomAndValOver := !(*field).IsRand && indexOfRow >= len(fieldWithValues.Values)
if
count
>=
vari
.
Total
||
isRandomAndLoopEnd
{
break
...
...
@@ -354,6 +359,16 @@ func putChildrenToArr(arrOfArr [][]string) (values [][]string) {
return
}
func
randomValues
(
values
[][]
string
)
(
ret
[][]
string
)
{
length
:=
len
(
values
)
for
i
:=
0
;
i
<
length
;
i
++
{
val
:=
commonUtils
.
RandNum
(
length
)
ret
=
append
(
ret
,
values
[
val
])
}
return
}
func
combineChildrenValues
(
arrOfArr
[][]
string
,
total
int
)
(
ret
[]
string
)
{
valueArr
:=
putChildrenToArr
(
arrOfArr
)
...
...
src/gen/list.go
浏览文件 @
99a8f44c
...
...
@@ -59,7 +59,8 @@ func CreateFieldValuesFromList(field *model.DefField, fieldValue *model.FieldWit
}
else
if
typ
==
"interval"
{
items
=
CreateValuesFromInterval
(
field
,
desc
,
stepStr
,
repeat
)
}
else
if
typ
==
"yaml"
{
items
=
CreateValuesFromYaml
(
field
,
desc
,
repeat
)
items
=
CreateValuesFromYaml
(
field
,
desc
,
stepStr
,
repeat
)
field
.
IsReferYaml
=
true
}
fieldValue
.
Values
=
append
(
fieldValue
.
Values
,
items
...
)
...
...
@@ -177,7 +178,7 @@ func CreateValuesFromLiteral(field *model.DefField, desc string, stepStr string,
return
}
func
CreateValuesFromInterval
(
field
*
model
.
DefField
,
desc
string
,
stepStr
string
,
repeat
int
)
(
items
[]
interface
{})
{
func
CreateValuesFromInterval
(
field
*
model
.
DefField
,
desc
,
stepStr
string
,
repeat
int
)
(
items
[]
interface
{})
{
elemArr
:=
strings
.
Split
(
desc
,
"-"
)
startStr
:=
elemArr
[
0
]
endStr
:=
startStr
...
...
@@ -220,7 +221,7 @@ func CreateValuesFromInterval(field *model.DefField, desc string, stepStr string
return
}
func
CreateValuesFromYaml
(
field
*
model
.
DefField
,
yamlFile
string
,
repeat
int
)
(
items
[]
interface
{})
{
func
CreateValuesFromYaml
(
field
*
model
.
DefField
,
yamlFile
,
stepStr
string
,
repeat
int
)
(
items
[]
interface
{})
{
// keep root def, since vari.Def will be overwrite by refer yaml file
rootDef
:=
vari
.
Def
...
...
@@ -229,6 +230,13 @@ func CreateValuesFromYaml(field *model.DefField, yamlFile string, repeat int) (i
rows
,
colIsNumArr
,
_
:=
GenerateForDefinition
(
""
,
configFile
,
&
fieldsToExport
)
items
=
Print
(
rows
,
constant
.
FormatData
,
""
,
colIsNumArr
,
fieldsToExport
)
if
repeat
>
0
{
if
repeat
>
len
(
items
)
-
1
{
repeat
=
len
(
items
)
-
1
}
items
=
items
[
:
repeat
]
}
// rollback root def when finish to deal with refer yaml file
vari
.
Def
=
rootDef
...
...
src/model/definition.go
浏览文件 @
99a8f44c
...
...
@@ -75,11 +75,13 @@ type FieldSimple struct {
Loop
string
`yaml:"loop"`
Loopfix
string
`yaml:"loopfix"`
Format
string
`yaml:"format"`
Rand
bool
`yaml:"rand"`
LoopStart
int
`yaml:"-"`
LoopEnd
int
`yaml:"-"`
LoopIndex
int
`yaml:"-"`
IsRand
bool
`yaml:"-"`
IsReferYaml
bool
`yaml:"-"`
}
type
FieldWithValues
struct
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录