这是一个基于自定义注解实现的数据库测试框架,主要特点包括:
- 通过@JTest注解标记测试方法,继承@Test注解功能
- 使用@BeforeAll/@AfterAll进行全局初始化和清理
- 支持@BeforeEach/@AfterEach在每个测试前后执行操作
- 提供数据库操作接口,如执行SQL和验证结果
- 框架将测试用例信息与执行过程通过注解提取,结合日志输出测试详情
- 实现了SQLite数据库连接管理,包含连接配置和关闭逻辑
该框架通过自定义注解扩展了JUnit的测试能力,特别适合数据库相关的自动化测试场景。
https://gitee.com/leijmdas/jtest3.git
整个框架自己定义
通过注解提取用例信息
@BeforeAll public void suiteSetUp() { System.out.println(dbnode.toString()); } @AfterAll public void suiteTearDown() throws IOException { System.out.println("close db :"); System.out.println(dbnode.toString()); try { dbnode.closeDb(); } catch (SQLException e) { e.printStackTrace(); } } @Override @BeforeEach public void setUp() { System.out.println("setup"); } @AfterEach @Override public void tearDown() { System.out.println("tesrDown"); } @JTest public void test0001_db_checkNum() throws Exception { dbnode.clearSql().sql("select * from t_user where id=49").getRecordNumber(); dbnode.checkRecordNumber(1); }
09:02:33,526 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@710b18a6 - Registering current configuration as safe fallback point
{"dbtype":"DEFAULT","driver":"org.sqlite.JDBC","url":"jdbc:sqlite:db/testdb.s3db","user":"","pwd":"","name":"sqlite","type":"sqlite"}
setup
select * from t_user where id=49
check true==true?true
check true==true?true
check true==true?true
check true==true?true
select * from t_user where id=49
select * from t_user where id=49
select * from t_user where id=49
1=1
1=1
tesrDown
close db :
{"dbtype":"DEFAULT","driver":"org.sqlite.JDBC","url":"jdbc:sqlite:db/testdb.s3db","user":"","pwd":"","name":"sqlite","type":"sqlite"}
实现原理
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) @Documented @Test public @interface JTest { }
继承注解,可扩展功能,同时利用现有的测试框架能力