run.go 1.7 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
)

17
func Run(scriptDir string, fileNames []string, langType string) {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
18
	//LangMap := scriptService.LangMap
19
	var files []string
aaronchen2k2k's avatar
aaronchen2k2k 已提交
20

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

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

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

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

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

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

aaronchen2k2k's avatar
aaronchen2k2k 已提交
51
	testingService.ExeScripts(files, "vari.Config.WorkDir", langType, &report)
52

aaronchen2k2k's avatar
aaronchen2k2k 已提交
53 54
	testingService.CheckResults(files, "vari.Config.WorkDir", langType, &report)
	testingService.Print(report, "vari.Config.WorkDir")
55
}