run.go 1.6 KB
Newer Older
1 2 3 4
package action

import (
	"github.com/easysoft/zentaoatf/src/model"
5
	testingService "github.com/easysoft/zentaoatf/src/service/testing"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
6 7 8
	"github.com/easysoft/zentaoatf/src/utils/common"
	"github.com/easysoft/zentaoatf/src/utils/const"
	"github.com/easysoft/zentaoatf/src/utils/file"
aaronchen2k2k's avatar
readme  
aaronchen2k2k 已提交
9 10
	i118Utils "github.com/easysoft/zentaoatf/src/utils/i118"
	logUtils "github.com/easysoft/zentaoatf/src/utils/log"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
11 12
	"github.com/easysoft/zentaoatf/src/utils/vari"
	zentaoUtils "github.com/easysoft/zentaoatf/src/utils/zentao"
aaronchen2k2k's avatar
readme  
aaronchen2k2k 已提交
13
	"github.com/fatih/color"
14
	"strings"
15 16
)

aaronchen2k2k's avatar
aaronchen2k2k 已提交
17 18 19
func Run(dir string, fileNames []string) {
	dir = commonUtils.UpdateDir(dir)

20
	var files []string
aaronchen2k2k's avatar
aaronchen2k2k 已提交
21

aaronchen2k2k's avatar
aaronchen2k2k 已提交
22
	if fileNames != nil && len(fileNames) > 0 { // pass a list, cui always
23 24
		if len(fileNames) == 1 {
			if strings.Index(fileNames[0], ".suite") > -1 {
25
				vari.RunMode = constant.RunModeSuite
26
			} else {
27
				vari.RunMode = constant.RunModeScript
28
			}
aaronchen2k2k's avatar
aaronchen2k2k 已提交
29
			vari.RunDir = zentaoUtils.PathToRunName(fileNames[0])
30
		} else {
31
			vari.RunMode = constant.RunModeBatch
aaronchen2k2k's avatar
aaronchen2k2k 已提交
32
			vari.RunDir = zentaoUtils.PathToRunName("")
33 34
		}

35 36
		files, _ = fileUtils.GetSpecifiedFilesInWorkDir(fileNames)

aaronchen2k2k's avatar
aaronchen2k2k 已提交
37
	} else { // give a dir
aaronchen2k2k's avatar
aaronchen2k2k 已提交
38
		fileUtils.GetAllFilesInDir(dir, &files)
39

aaronchen2k2k's avatar
aaronchen2k2k 已提交
40
		vari.RunMode = constant.RunModeDir
aaronchen2k2k's avatar
aaronchen2k2k 已提交
41
		vari.RunDir = zentaoUtils.PathToRunName(dir)
42
	}
43

aaronchen2k2k's avatar
readme  
aaronchen2k2k 已提交
44 45 46 47 48
	if len(files) < 1 {
		logUtils.PrintToCmd(color.RedString("\n" + i118Utils.I118Prt.Sprintf("no_scripts")))
		return
	}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
49
	var report = model.TestReport{Path: vari.ReportDir, Env: commonUtils.GetOs(),
50 51
		Pass: 0, Fail: 0, Total: 0, Cases: make([]model.CaseLog, 0)}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
52
	testingService.ExeScripts(files, &report)
53

aaronchen2k2k's avatar
aaronchen2k2k 已提交
54 55
	testingService.CheckResults(files, &report)
	testingService.Print(report)
56
}