出于日志记录的目的,我创建了一个方法logTitle(),它打印出TestNG测试的调用方法名称.示例代码如下.
@Test
public void test1() throws Exception {
method1();
}
public static void method1() throws Exception {
Utils.logTitle(2);
}
Run Code Online (Sandbox Code Playgroud)
...
public static void logTitle(Integer level) throws Exception {
// Gets calling method name
String method = Thread.currentThread().getStackTrace()[2].getMethodName();
// This would get current method name
switch (level) {
case 1:
logger.info("=======================================================");
logger.info(method);
logger.info("=======================================================");
break;
case 2:
logger.info("------------------------------------");
logger.info(method);
logger.info("------------------------------------");
break;
case 3:
logger.info("---------------------");
logger.info(method);
logger.info("---------------------");
break;
case 4:
logger.info("--------- " + method + " ------------");
break;
default:
logger.info(method);
}
}
Run Code Online (Sandbox Code Playgroud)
问题是我在两台不同的机器上获得了不同的logTitle()结果.
每个人的笔记本电脑都正确返回:
2016-06-20 14:22:06 INFO - ------------------------------------
2016-06-20 14:22:06 INFO - method1
2016-06-20 14:22:06 INFO - ------------------------------------
Run Code Online (Sandbox Code Playgroud)
我们的dev unix框以不同的方式返回:
2016-06-20 14:42:26 INFO - ------------------------------------
2016-06-20 14:42:26 INFO - logTitle
2016-06-20 14:42:26 INFO - ------------------------------------
Run Code Online (Sandbox Code Playgroud)
这适用于其他人的笔记本电脑,而不是dev unix盒子.我认为dev unix框使用的是IBM的Java版本,而其他所有人都在使用Oracle的Java版本,但不确定这是否是罪魁祸首.
有任何想法吗?
| 归档时间: |
|
| 查看次数: |
2389 次 |
| 最近记录: |