easysoft / zentaoatf

zentaoatf is an cross platform automation testing framework written in go language.
https://ztf.im
GNU General Public License v3.0
165 stars 53 forks source link

ztf co 从禅道检出时出错(panic) #21

Closed FantasyLeo closed 2 years ago

FantasyLeo commented 2 years ago

环境描述

输入

关键输入如下图,类似的情况挺多,详细见bash 关键截图


D:\mypath>ztf co

请选择用例来源
1。 产品
2。 套件
3。 任务
3

请输入 测试任务Id:
1

是否将用例期待结果保存在独立的文件中?(y/n, 默认No)

no

请选择脚本语言
1. Autoit
2. BAT
3. Javascript
4. Lua
5. Perl
6. PHP
7. Python
8. Ruby
9. Shell
10. Tcl
1

请输入脚本保存目录: 默认为D:\mypath\product1\

D:\mypath\product1\

是否希望按模块ID组织脚本目录结构?(y/n, 默认Yes)
n
panic: runtime error: index out of range [0] with length 0

goroutine 1 [running]:
github.com/easysoft/zentaoatf/internal/comm/helper/script.ReplaceCaseDesc({0xc000030380, 0x33}, {0xc0000ac0c0, 0x18})
        /Users/aaron/rd/project/zentao/go/ztf/internal/comm/helper/script/parser.go:26 +0x365
github.com/easysoft/zentaoatf/internal/comm/helper/script.GenerateScript({0x1, 0x1, 0x1, {0xc0003c5360, 0xb}, {0xc00000a080, 0x1, 0x1}}, {0xc61124, 0x6}, ...)
        /Users/aaron/rd/project/zentao/go/ztf/internal/comm/helper/script/generator.go:87 +0xa25
github.com/easysoft/zentaoatf/internal/comm/helper/script.GenerateScripts({0xc00018a500, 0x1, 0xc5c745}, {0xc61124, 0x6}, 0x4, 0x0, {0xc0000ac240, 0x4})
        /Users/aaron/rd/project/zentao/go/ztf/internal/comm/helper/script/generator.go:28 +0x345
github.com/easysoft/zentaoatf/internal/comm/helper/zentao.SyncFromZentao({0x0, _, _, _, _, {_, _}, _, _}, {{0xc00016a411, ...}, ...}, ...)
        /Users/aaron/rd/project/zentao/go/ztf/internal/comm/helper/zentao/sync.go:37 +0x2c5
github.com/easysoft/zentaoatf/internal/command/action.Checkout({0x0, 0x0}, {0x0, 0x0}, {0x0, 0x0}, {0x14598e8, 0x1}, 0x0, {0xc61124, ...})
        /Users/aaron/rd/project/zentao/go/ztf/internal/command/action/checkout.go:31 +0x2e7
main.main()
        /Users/aaron/rd/project/zentao/go/ztf/cmd/command/main.go:91 +0x11f8

D:\mypath>ztf co -p 1 -m 1 -l python

请输入脚本保存目录: 默认为D:\mypath\product1\

D:\mypath\product1\

是否希望按模块ID组织脚本目录结构?(y/n, 默认Yes)
n
成功创建1个测试脚本, 目录: 'D:\mypath\product1\'。

D:\mypath>ztf co -p 1 -l python

请输入脚本保存目录: 默认为D:\mypath\product1\

D:\mypath\product1\

是否希望按模块ID组织脚本目录结构?(y/n, 默认Yes)

no
成功创建1个测试脚本, 目录: 'D:\mypath\product1\'。

D:\mypath>ztf co

请选择用例来源
1。 产品
2。 套件
3。 任务
1

请输入 产品Id:
1

请输入 模块Id:
1

是否将用例期待结果保存在独立的文件中?(y/n, 默认No)

no

请选择脚本语言
1. Autoit
2. BAT
3. Javascript
4. Lua
5. Perl
6. PHP
7. Python
8. Ruby
9. Shell
10. Tcl
1

请输入脚本保存目录: 默认为D:\mypath\product1\

D:\mypath\product1\

是否希望按模块ID组织脚本目录结构?(y/n, 默认Yes)
n
panic: runtime error: index out of range [0] with length 0

goroutine 1 [running]:
github.com/easysoft/zentaoatf/internal/comm/helper/script.ReplaceCaseDesc({0xc000250b00, 0x33}, {0xc00002c3c0, 0x18})
        /Users/aaron/rd/project/zentao/go/ztf/internal/comm/helper/script/parser.go:26 +0x365
github.com/easysoft/zentaoatf/internal/comm/helper/script.GenerateScript({0x1, 0x1, 0x1, {0xc00027f620, 0xb}, {0xc00046e080, 0x1, 0x1}}, {0xc61124, 0x6}, ...)
        /Users/aaron/rd/project/zentao/go/ztf/internal/comm/helper/script/generator.go:87 +0xa25
github.com/easysoft/zentaoatf/internal/comm/helper/script.GenerateScripts({0xc000098400, 0x1, 0xc5c745}, {0xc61124, 0x6}, 0x4, 0x0, {0xc00002c2d0, 0x4})
        /Users/aaron/rd/project/zentao/go/ztf/internal/comm/helper/script/generator.go:28 +0x345
github.com/easysoft/zentaoatf/internal/comm/helper/zentao.SyncFromZentao({0x0, _, _, _, _, {_, _}, _, _}, {{0xc000258211, ...}, ...}, ...)
        /Users/aaron/rd/project/zentao/go/ztf/internal/comm/helper/zentao/sync.go:37 +0x2c5
github.com/easysoft/zentaoatf/internal/command/action.Checkout({0x14598e8, 0x1}, {0x14598e8, 0x1}, {0x0, 0x0}, {0x0, 0x0}, 0x0, {0xc61124, ...})
        /Users/aaron/rd/project/zentao/go/ztf/internal/command/action/checkout.go:31 +0x2e7
main.main()
        /Users/aaron/rd/project/zentao/go/ztf/cmd/command/main.go:91 +0x11f8

D:\mypath>ztf co

请选择用例来源
1。 产品
2。 套件
3。 任务
1

请输入 产品Id:
0

请输入 模块Id:
0

是否将用例期待结果保存在独立的文件中?(y/n, 默认No)

no

请选择脚本语言
1. Autoit
2. BAT
3. Javascript
4. Lua
5. Perl
6. PHP
7. Python
8. Ruby
9. Shell
10. Tcl
1
未找到测试用例。

D:\mypath>ztf co

请选择用例来源
1。 产品
2。 套件
3。 任务
1

请输入 产品Id:
1

请输入 模块Id:
1

是否将用例期待结果保存在独立的文件中?(y/n, 默认No)

no

请选择脚本语言
1. Autoit
2. BAT
3. Javascript
4. Lua
5. Perl
6. PHP
7. Python
8. Ruby
9. Shell
10. Tcl
1

请输入脚本保存目录: 默认为D:\mypath\product1\

D:\mypath\product1\

是否希望按模块ID组织脚本目录结构?(y/n, 默认Yes)

no
panic: runtime error: index out of range [0] with length 0

goroutine 1 [running]:
github.com/easysoft/zentaoatf/internal/comm/helper/script.ReplaceCaseDesc({0xc0002ac480, 0x33}, {0xc000272780, 0x18})
        /Users/aaron/rd/project/zentao/go/ztf/internal/comm/helper/script/parser.go:26 +0x365
github.com/easysoft/zentaoatf/internal/comm/helper/script.GenerateScript({0x1, 0x1, 0x1, {0xc0002a4440, 0xb}, {0xc0001ba200, 0x1, 0x1}}, {0xc61124, 0x6}, ...)
        /Users/aaron/rd/project/zentao/go/ztf/internal/comm/helper/script/generator.go:87 +0xa25
github.com/easysoft/zentaoatf/internal/comm/helper/script.GenerateScripts({0xc00018a200, 0x1, 0xc5c745}, {0xc61124, 0x6}, 0x4, 0x0, {0xc000272708, 0x4})
        /Users/aaron/rd/project/zentao/go/ztf/internal/comm/helper/script/generator.go:28 +0x345
github.com/easysoft/zentaoatf/internal/comm/helper/zentao.SyncFromZentao({0x0, _, _, _, _, {_, _}, _, _}, {{0xc0002a7161, ...}, ...}, ...)
        /Users/aaron/rd/project/zentao/go/ztf/internal/comm/helper/zentao/sync.go:37 +0x2c5
github.com/easysoft/zentaoatf/internal/command/action.Checkout({0x14598e8, 0x1}, {0x14598e8, 0x1}, {0x0, 0x0}, {0x0, 0x0}, 0x0, {0xc61124, ...})
        /Users/aaron/rd/project/zentao/go/ztf/internal/command/action/checkout.go:31 +0x2e7
main.main()
        /Users/aaron/rd/project/zentao/go/ztf/cmd/command/main.go:91 +0x11f8

D:\mypath>ztf version

Build TimeStamp:
GoLang Version:
Git Commit Hash:

D:\mypath>

期待输出

实际输出

部分参数会提示程序错误,详情见 “输入”

附件

FantasyLeo commented 2 years ago

补充

co 检出,脚本语言选择 “1. Autoit” , 其他参数任意,如果没有出错,重复一次同样的命令和参数就会出现上述错误。

删除检出目录,再次执行相同命令和参数,则正常一次。

aaronchen2k commented 2 years ago

FIXED