package org.test4j.module.tracer; import org.test4j.json.encoder.object.SpecEncoder; import org.test4j.module.core.utility.IPropConst; import org.test4j.tools.commons.ClazzHelper; import org.test4j.tools.commons.ConfigHelper; import org.test4j.tools.commons.StringHelper; @SuppressWarnings("rawtypes") public class TracerHelper { /** * 记录跟踪信息的媒介,type文件,db数据库 */ public final static String TRACER_TYPE = "tracer.type"; /** * 如果信息媒介是文件,文件存放的根路径<br> * 如果没有设置,则表示在项目target\tracer路径下 */ public final static String TRACER_FILE_DIR = "tracer.file.dir"; /** * 如果是记录在数据库中,数据库连接串url */ public final static String TRACER_DB_URL = "tracer.db.url"; /** * 如果是记录在数据库中,数据库连接用户名 */ public final static String TRACER_DB_USERNAME = "tracer.db.username"; /** * 如果是记录在数据库中,数据库连接密码 */ public final static String TRACER_DB_PASSWORD = "tracer.db.password"; /** * 是否打开记录测试序列的功能 * * @return */ public static boolean doesTracerEnabled() { return IPropConst.TRACER_ENABLE; } /** * 是否将跟踪信息记录在文件中 * * @return */ public static boolean tracerLogInFile() { String type = ConfigHelper.getString(TRACER_TYPE, "file"); if ("file".equalsIgnoreCase(type)) { return true; } else { return false; } } /** * 存放跟踪信息的文件根路径 * * @return */ public static String tracerFileDir() { String dir = ConfigHelper.getString(TRACER_FILE_DIR); if (StringHelper.isBlankOrNull(dir)) { dir = System.getProperty("user.dir") + "/target/tracer"; } return dir; } /** * 排除一些复杂对象JSON生成 */ public static void addCustomizedSpecEncoder() { try { Class sqlMapClientImpl = ClazzHelper.getClazz("com.ibatis.sqlmap.engine.impl.SqlMapClientImpl"); SpecEncoder.addSpecEncoder(sqlMapClientImpl, IbatisSqlMapClientImplEncoder.instance); } catch (Throwable e) { } } }