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

import (
	"github.com/easysoft/zentaoatf/src/model"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
5
	"github.com/easysoft/zentaoatf/src/service/script"
6
	testingService "github.com/easysoft/zentaoatf/src/service/testing"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
7 8 9
	"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 已提交
10 11
	i118Utils "github.com/easysoft/zentaoatf/src/utils/i118"
	logUtils "github.com/easysoft/zentaoatf/src/utils/log"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
12 13
	"github.com/easysoft/zentaoatf/src/utils/vari"
	zentaoUtils "github.com/easysoft/zentaoatf/src/utils/zentao"
aaronchen2k2k's avatar
readme  
aaronchen2k2k 已提交
14
	"github.com/fatih/color"
15
	"strings"
16 17
)

18
func Run(scriptDir string, fileNames []string, langType string) {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
19
	LangMap := scriptService.LangMap
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
38 39
		fileUtils.GetAllFilesInDir(scriptDir, LangMap[langType]["extName"], &files)

aaronchen2k2k's avatar
aaronchen2k2k 已提交
40
		vari.RunMode = constant.RunModeDir
aaronchen2k2k's avatar
aaronchen2k2k 已提交
41
		vari.RunDir = zentaoUtils.PathToRunName(scriptDir)
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.Prefer.WorkDir, Env: commonUtils.GetOs(),
50 51
		Pass: 0, Fail: 0, Total: 0, Cases: make([]model.CaseLog, 0)}

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

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