Author: lfryc(a)redhat.com
Date: 2010-08-11 17:16:21 -0400 (Wed, 11 Aug 2010)
New Revision: 18574
Modified:
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/MetamerFailureLoggingTestListener.java
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/MetamerTestInfo.java
Log:
improved failure logging by separating template information as sub-directory for other
test parameters and by sorting parameters by its length
Modified:
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/MetamerFailureLoggingTestListener.java
===================================================================
---
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/MetamerFailureLoggingTestListener.java 2010-08-11
21:15:41 UTC (rev 18573)
+++
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/MetamerFailureLoggingTestListener.java 2010-08-11
21:16:21 UTC (rev 18574)
@@ -21,6 +21,10 @@
*******************************************************************************/
package org.richfaces.tests.metamer.ftest;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.apache.commons.lang.StringUtils;
import org.jboss.test.selenium.listener.FailureLoggingTestListener;
import org.jboss.test.selenium.utils.testng.TestInfo;
import org.testng.ITestResult;
@@ -35,8 +39,18 @@
String packageName = TestInfo.getContainingPackageName(result);
String className = TestInfo.getClassName(result);
String methodName = TestInfo.getMethodName(result);
- String testInfo = MetamerTestInfo.getConfigurationInfo().replaceAll("
", "");
+ String testInfo = MetamerTestInfo.getConfigurationInfo();
+ testInfo = StringUtils.replaceChars(testInfo, "\\/*?\"<>|",
"");
+ testInfo = StringUtils.replaceChars(testInfo, "\r\n \t",
"_");
+ testInfo = StringUtils.replaceChars(testInfo, ":", "-");
+
+ // derives template and sort it as sub-directory after other attributes
+ Matcher matcher =
Pattern.compile("^(template-[^,]+),(.*)$").matcher(testInfo);
+ if (matcher.find()) {
+ testInfo = matcher.group(2) + "/" + matcher.group(1);
+ }
+
return packageName + "/" + className + "/" + methodName +
"/" + testInfo;
}
Modified:
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/MetamerTestInfo.java
===================================================================
---
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/MetamerTestInfo.java 2010-08-11
21:15:41 UTC (rev 18573)
+++
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/MetamerTestInfo.java 2010-08-11
21:16:21 UTC (rev 18574)
@@ -22,9 +22,15 @@
package org.richfaces.tests.metamer.ftest;
import java.lang.reflect.Field;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.LinkedList;
+import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import org.apache.commons.lang.StringUtils;
+
/**
* @author <a href="mailto:ppitonak@redhat.com">Lukas Fryc</a>
* @version $Revision$
@@ -35,22 +41,32 @@
public static String getConfigurationInfo() {
Map<Field, Object> configuration =
MatrixConfigurator.getCurrentConfiguration();
- StringBuffer info = new StringBuffer();
+
+ List<String> info = new LinkedList<String>();
if (!configuration.isEmpty()) {
for (Entry<Field, Object> entry : configuration.entrySet()) {
final String name = entry.getKey().getName();
final Object value = entry.getValue();
if (value != null) {
- if (info.length() > 0) {
- info.append(", ");
- }
- info.append(name + ": " + value);
+ info.add(name + ": " + value);
}
}
}
- return info.toString();
+ Collections.sort(info, new Comparator<String>() {
+ public int compare(String o1, String o2) {
+ if (o1.startsWith("template: ")) {
+ return -1;
+ }
+ if (o2.startsWith("template: ")) {
+ return 1;
+ }
+ return o1.length() - o2.length();
+ }
+ });
+
+ return StringUtils.join(info, ", ");
}
public static String getConfigurationInfoInParenthesses() {