首页 / 操作系统 / Linux / 基于模板的简易代码生成器Python源码
基于模板的简易代码生成器Python源码,需要写的单元测试太多,框架又是类似的,但类名和变量名却各不相同。索性花几分钟用Python脚本写个简易代码生成器,顺便记录于此,得空优化一下,以备后用。代码import os
import datetimetplFilePath = "E://template.java"
path = "E://"testObjList = ["Deposit",
"Config",
"FundsFilter",
"MobileOpenAuth",
"MobilePartnerRiskLevel",
"MobilePhoneChargeOrder",
"MobileSmspayValicode",
"MobileSystemParam",
"MobileVd",
"Order",
"OriginalOrder",
"Package",
"Plantform",
"Seq",
"Service",
"TipsDelivery",
"Trustlogin",
"UpdateConfig",
"UpdateHint",
"UserAccount",
"UserDao",
"UserStatus"
]for testObj in testObjList: testObjVarName = testObj[0].lower() + testObj[1:] filename = "Ibatis" + testObj +"DAOTester.java"
author = "chenxin" now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") tplFile = open(tplFilePath)
gFile = open(path+filename ,"w") fileList = tplFile.readlines() for fileLine in fileList:
line = fileLine.replace("${author}",author)
.replace("${now}",now)
.replace("${testObject}",testObj)
.replace("${testObjVarName}",testObjVarName)
print line
gFile.writelines(line) tplFile.close()
gFile.close()模板/**
* created since ${now}
*/
package com.alipay.mspcore.common.dal.ibatis;import java.util.Date;import junit.framework.Assert;import com.alipay.mspcore.common.dal.daointerface.${testObject}DAO;
import com.alipay.mspcore.common.dal.dataobject.${testObject};
import com.alipay.sofa.runtime.test.AnnotatedAutowireSofaTestCase;
import com.iwallet.biz.common.util.money.Money;/**
* @author ${author}
* @version $Id: Ibatis${testObject}DAOTester.java, v 0.1 ${now} ${author} Exp $
*/
public class Ibatis${testObject}DAOTester extends AnnotatedAutowireSofaTestCase { @Override
public String[] getConfigurationLocations() {
return new String[] { "META-INF/spring/common-dal-db.xml",
"META-INF/spring/mobilespcore-common-dal-dao.xml", "META-INF/spring/common-dal.xml" };
} @Override
public String[] getResourceFilterNames() {
return new String[] { "META-INF/spring/common-dal-db.xml" };
} @Override
public String[] getWebServiceConfigurationLocations() {
return new String[] {};
} private ${testObject}DAO get${testObject}DAO() {
${testObject}DAO dao = (${testObject}DAO) this.getBean("${testObjVarName}DAO", ${testObject}DAO.class, null);
return dao;
} public void test${testObject}DAO() {
${testObject}DAO configDAO = get${testObject}DAO();
Assert.assertNotNull(configDAO);
} public void test() {
${testObject}DO ${testObjVarName}DO = new ${testObject}DO();
${testObjVarName}DO.setGmtCreate(new Date());
${testObjVarName}DO.setGmtModified(new Date());
${testObjVarName}DO.setId(10000); ${testObject}DAO ${testObjVarName}DAO = get${testObject}DAO();
long result = ${testObjVarName}DAO.insert(${testObjVarName}DO);
Assert.assertTrue(result > 0);
}
}效果/**
* created since 2011-12-30 14:31:38
*/
package com.alipay.mspcore.common.dal.ibatis;import java.util.Date;import junit.framework.Assert;import com.alipay.mspcore.common.dal.daointerface.UpdateHintDAO;
import com.alipay.mspcore.common.dal.dataobject.UpdateHint;
import com.alipay.sofa.runtime.test.AnnotatedAutowireSofaTestCase;
import com.iwallet.biz.common.util.money.Money;/**
* @author chenxin
* @version $Id: IbatisUpdateHintDAOTester.java, v 0.1 2011-12-30 14:31:38 chenxin Exp $
*/
public class IbatisUpdateHintDAOTester extends AnnotatedAutowireSofaTestCase { @Override
public String[] getConfigurationLocations() {
return new String[] { "META-INF/spring/common-dal-db.xml",
"META-INF/spring/mobilespcore-common-dal-dao.xml", "META-INF/spring/common-dal.xml" };
} @Override
public String[] getResourceFilterNames() {
return new String[] { "META-INF/spring/common-dal-db.xml" };
} @Override
public String[] getWebServiceConfigurationLocations() {
return new String[] {};
} private UpdateHintDAO getUpdateHintDAO() {
UpdateHintDAO dao = (UpdateHintDAO) this.getBean("updateHintDAO", UpdateHintDAO.class, null);
return dao;
} public void testUpdateHintDAO() {
UpdateHintDAO configDAO = getUpdateHintDAO();
Assert.assertNotNull(configDAO);
} public void test() {
UpdateHintDO updateHintDO = new UpdateHintDO();
updateHintDO.setGmtCreate(new Date());
updateHintDO.setGmtModified(new Date());
updateHintDO.setId(10000); UpdateHintDAO updateHintDAO = getUpdateHintDAO();
long result = updateHintDAO.insert(updateHintDO);
Assert.assertTrue(result > 0);
}
}Python向PHP发起GET与POST请求 http://www.linuxidc.com/Linux/2014-10/107903.htm《Python核心编程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm《Python开发技术详解》.( 周伟,宗杰).[高清PDF扫描版+随书视频+代码] http://www.linuxidc.com/Linux/2013-11/92693.htmPython脚本获取Linux系统信息 http://www.linuxidc.com/Linux/2013-08/88531.htm在Ubuntu下用Python搭建桌面算法交易研究环境 http://www.linuxidc.com/Linux/2013-11/92534.htmPython 语言的发展简史 http://www.linuxidc.com/Linux/2014-09/107206.htmPython 的详细介绍:请点这里
Python 的下载地址:请点这里本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-10/108262.htm