run.go 1.6 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 10 11
	"github.com/easysoft/zentaoatf/src/utils/common"
	"github.com/easysoft/zentaoatf/src/utils/const"
	"github.com/easysoft/zentaoatf/src/utils/file"
	"github.com/easysoft/zentaoatf/src/utils/vari"
	zentaoUtils "github.com/easysoft/zentaoatf/src/utils/zentao"
12
	"strings"
13 14
)

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

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

32 33
		files, _ = fileUtils.GetSpecifiedFilesInWorkDir(fileNames)

aaronchen2k2k's avatar
aaronchen2k2k 已提交
34
	} else { // give a dir
35 36
		fileUtils.GetAllFilesInDir(scriptDir, LangMap[langType]["extName"], &files)

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

aaronchen2k2k's avatar
aaronchen2k2k 已提交
41
	var report = model.TestReport{Path: vari.Prefer.WorkDir, Env: commonUtils.GetOs(),
42 43
		Pass: 0, Fail: 0, Total: 0, Cases: make([]model.CaseLog, 0)}

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

aaronchen2k2k's avatar
aaronchen2k2k 已提交
46 47
	testingService.CheckResults(files, vari.Prefer.WorkDir, langType, &report)
	testingService.Print(report, vari.Prefer.WorkDir)
48
}