maven和testng执行路径问题

最近在编写自动化测试框架的时候遇到以下问题,记录下来避免忘记:

  • testng默认执行路径是在项目路径下
  • maven执行路径是在target下
  • mac和windows的路径处理方式不同,Mac是\,windows是\\

代码是实现如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/**
* //TODO 获取测试文件路径,根据系统给出不同的数值
*
* @param path
* @return
*/

public String getPath(String path) {
if (isWindows()) {
return getWinpath(path);
}
return getMacPath(path);
}

/**
* //TODO 获取mac和Linux下的文件地址
*
* @param path
* @return
*/

private String getMacPath(String path) {
String[] strings = path.split("/");
if (strings[strings.length - 1].equals("target")) {
return "../src/test/resources/";
}
return "src/test/resources/";
}

/**
* //TODO 获取windows下的文件地址
*
* @param path
* @return
*/

private String getWinpath(String path) {
String[] strings = path.split("\\\\");
if (strings[strings.length - 1].equals("target")) {
return "..\\src\\test\\resources\\";
}
return "src\\test\\resources\\";
}

/**
* //TODO 判断系统是否为windows
*
* @return
*/

private static boolean isWindows() {
boolean flag = false;
if (System.getProperties().getProperty("os.name").toUpperCase().indexOf("WINDOWS") != -1) {
flag = true;
}
return flag;
}