2017-02-18 11 views
2

내 griffon 데스크톱 클라이언트 애플리케이션의 경우 OrmLite와 관련된 테스트를 작성하려고합니다. configuration section of the griffon-ormlite plugin guide을 사용하여 Java 구성 파일 OrmLite를 구성했습니다. 내가하려고하는 것은 OrmLite가 테스트 중에 다른 (빈) 데이터베이스를 사용하도록 설정하는 것입니다. 그러나 응용 프로그램이 테스트 구성을 선택하지 않고 대신 기본 설정을로드합니다.Griffon Ormlite 플러그인 구성이 환경 설정을 선택하지 않습니다.

유의할 것들 :

  • SRC와 동일하게 구성을 지정/주/자원 구성 가이드/Ormlite.groovy (위의 링크)에 대해 불평하는 플러그인의 원인이됩니다 'default.url'설정이 누락되었습니다. 그래서 예제가 잘못되었습니다 (구식일지도 모릅니다.) 또는 환경과 관련하여 뭔가를 놓치고 있습니다. (구성이 변경되기 전에 변형 되는가? 이에 관한 문서는 발견되지 않았습니다.)
  • application environment enum은 테스트 중에 Environment.TEST가 올바르게 발생하고 실행 중에 Environment.DEVELOPMENT가됩니다.
  • 버전 :

    import java.util.Map; 
    
    import griffon.util.AbstractMapResourceBundle; 
    
    import static griffon.util.CollectionUtils.map; 
    
    public class Ormlite extends AbstractMapResourceBundle { 
        @Override 
        protected void initialize(Map<String, Object> entries) { 
         map(entries) 
          // the default database setting 
          .e("database", map() 
           .e("url", "jdbc:h2:internal") 
          ) 
          .e("environments", map() 
           .e("test", map() 
            // the database that should be used during testing, but is not being picked up 
            .e("database", map() 
             .e("url", "jdbc:h2:mem:internal-test") 
            ) 
           ) 
          ); 
        } 
    } 
    

    어떤 도움이 매우 감사합니다 : 그리폰 2.9.1, 그리폰-ormlite 1.1.0

다음은 구성 파일입니다.

답변

2

Groovy 스크립트처럼 클래스 기반 ResourceBundles가 environments 블록 (또는 그와 관련된 다른 조건부 블록)에 대한 지원을 제공하지 않는다는 것에 문제가있는 것 같습니다. 최근에 이러한 종류의 지원을 Properties 파일에 추가했습니다 (https://github.com/griffon/griffon/issues/196 참조). 클래스 기반 번들에 같은 것을 추가해야 할 필요성이 생겼다.

해결 방법으로 Groovy 스크립트 구성으로 전환 할 수있는 경우 griffon-groovy을 프로젝트 종속성으로 추가해야합니다. 이로 인해 적어도 7M 분의 의존성이 추가됩니다.

이 기능을 추적하기 위해 https://github.com/griffon/griffon/issues/212을 제출했습니다.

+1

이 기능을 사용하기 위해 최신 2.10.0-SNAPSHOT (사용자 고유의 양식 소스를 만들어야 함)을 시도해 볼 수 있습니다. 이제 수정 사항이 적용됩니다. 피드백 환영 :-) – aalmiray

+0

정말 고마워요. 이것은 제가 꿈꿔 왔던 것보다 더 나은 대답입니다 : D. 스냅 샷을 소용돌이 치고 아무것도 나오는지 살펴볼 것입니다. – Magnavode

+1

그것은 매력처럼 작동합니다 :). 도와 주셔서 정말 감사합니다. – Magnavode