Groovy LinkedHashMap问题。。。有人帮我吗
在执行此测试用例时,我面临以下错误。。。 请任何人建议我克服这个问题Groovy LinkedHashMap问题。。。有人帮我吗,groovy,Groovy,在执行此测试用例时,我面临以下错误。。。 请任何人建议我克服这个问题 AbortedJobImportTest testAbortedJobAddedSuccessfullyToExcludedRun Unknown entity: java.util.LinkedHashMap org.hibernate.MappingException: Unknown entity: java.util.LinkedHashMap at com.rsa.test.crawler
AbortedJobImportTest
testAbortedJobAddedSuccessfullyToExcludedRun
Unknown entity: java.util.LinkedHashMap
org.hibernate.MappingException: Unknown entity: java.util.LinkedHashMap
at com.rsa.test.crawler.CrawlerTestBase.setUp(CrawlerTestBase.groovy:42)
at com.rsa.test.crawler.AbortedJobImportTest.setUp(AbortedJobImportTest.groovy:19)
/****
CrawlerTestBase
public class CrawlerTestBase extends GroovyTestCase {
static transactional = false;
def productsModel;
protected JenkinsJobCrawlerDTO jenkinsCrawlerDTO;
def jenkinsJobService;
def httpClientService;
def sessionFactory;
def productModelsService;
protected String JENKINS_URL = "http://10.101.43.253:8080/jenkins/";
protected String JENKINS_JOB_CONSTANT= "job";
protected String JUNIT_TEST_PARAMETERS = "type=junit";
protected String CUSTOM_JUNIT_SELENIUM_TEST_PARAMETERS = "type=selenium,outputfile=Custom-junit-report*";
protected String DEFAULT_PRODUCT = "AM";
public void setUp(){
deleteDataFromTables();
Date date = new Date();
productsModel = new ProductModel(product:DEFAULT_PRODUCT,jenkinsServers:"10.101.43.253",date:date);
if (productsModel.validate()) {
productsModel.save(flush:true);
log.info("Added entry for prodct model for "+DEFAULT_PRODUCT);
}
else {
productsModel.errors.allErrors.each { log.error it }
}
jenkinsCrawlerDTO = new JenkinsJobCrawlerDTO();
productModelsService.reinitialise();
sessionFactory.currentSession.save(flush:true);
sessionFactory.currentSession.clear();
}
public void tearDown(){
deleteDataFromTables();
}
protected void deleteDataFromTables(){
Set<String> tablesToDeleteData = new HashSet<String>();
tablesToDeleteData.add("ExcludedJenkinsRuns");
tablesToDeleteData.add("TestRuns");
tablesToDeleteData.add("ProductModel");
tablesToDeleteData.add("SystemEvents");
tablesToDeleteData.add("JenkinsJobsToCrawl");
tablesToDeleteData.add("TestSuitesInViewList");
tablesToDeleteData.add("JenkinsJobsToCrawl");
(ApplicationHolder.application.getArtefacts("Domain") as List).each {
if(tablesToDeleteData.contains(it.getName())){
log.info("Deleting data from ${it.getName()}");
it.newInstance().list()*.delete()
}
}
sessionFactory.currentSession.flush();
sessionFactory.currentSession.clear();
}
public void oneTimeSetUp(){
}
public void oneTimeTearDown(){
}
}
我无法在这段代码中找出问题所在。有人能帮我吗?
在执行此测试用例时,我面临以下错误。。。
请任何人建议我克服这个问题 这意味着您试图在产品模型的构造函数中放置LinkedHashMap,但没有具有LinkedHashMap参数的构造函数
AbortedJobImportTest
testAbortedJobAddedSuccessfullyToExcludedRun
Unknown entity: java.util.LinkedHashMap
org.hibernate.MappingException: Unknown entity: java.util.LinkedHashMap
at com.rsa.test.crawler.CrawlerTestBase.setUp(CrawlerTestBase.groovy:42)
at com.rsa.test.crawler.AbortedJobImportTest.setUp(AbortedJobImportTest.groovy:19)
我想问题在于你的单元测试。grails框架将添加模型构造函数。您没有在单元测试中运行grails框架,因为您使用的是GroovyTestCase而不是Spock。
锁在这里第42行是什么?是productsModel=新产品型号?您的ProductModel是什么样子的?您的productsModel=new ProductModel(产品:默认产品,jenkins服务器:“10.101.43.253”,日期:date)。类ProductModel{静态映射={表“产品”\u模型”id列:“id”产品列:“产品”jenkins服务器列:“jenkins\u服务器”日期列:“日期”version false cache true}int-id;String-product;String-jenkinsServers;Date-Date;}乍一看我以为这是grails,但事实并非如此,对吗?那里的ProductModel类生成了一些使用hibernate实体的ctor,但您向它传递了一个映射。如果这个猜测还很遥远,请提供进一步的信息,什么是libs/frameworks/。。。在这里使用,因为这不仅仅是一个groovy问题。