2012-12-02 2 views
3

ActivePivot Server의 다른 부분과 가장 중요한 포스트 프로세서에 대한 자동화 된 테스트를 구현할 생각이었습니다.ActivePivot 테스트 전략

저는 처음부터이 분야의 최첨단 기술에 대해 더 알고 싶습니다. 모범 사례는 무엇이며 피할 수있는주의 사항이 있다면 알려주십시오.

경험이 있으시면 언제든지 읽어 보니 기쁩니다.

건배, 매우 광범위한 질문이다 파스칼

답변

0

. ActivePivot 솔루션은 Java 소프트웨어 조각이며 소프트웨어 프로젝트의 테스트 및 지속적인 빌드와 관련된 모든 모범 사례에서 상속받습니다.

어떻게, 어디에서 시험을 쓰기 :

하지만, 여기에 몇 가지 기본 ActivePivot 진입 점입니까? junit 테스트를 작성하고 maven으로 실행하고 Jenkins와의 지속적인 빌드를 설정하십시오.

단위 테스트 내에 (실제, 단순한) ActivePivot 인스턴스를 포함시키는 방법은 무엇입니까? 임베디드 Jetty 웹 응용 프로그램 서버를 시작하십시오. ActivePivot 샌드 박스 응용 프로그램은 그 예입니다 (com.quartetfs.pivot.jettyserver.JettyServer 참조). 동일한 ActivePivot 인스턴스에 대해 일련의 단위 테스트를 실행하려면 Jetty 서버를 정적으로 시작할 수 있습니다 (예 : @BeforeClass로 주석이 지정된 정적 메서드에서). 어쨌든 시험이 끝나면 멈추는 것을 잊지 마십시오.

성능 테스트를 작성하는 방법은 무엇입니까? Sandbox 프로젝트에는 com.quartetfs.pivot.client.MDXBenchmark이라는 작은 MDX 벤치 마크가 있습니다. 풍부 해지기 쉽고 좋은 출발점입니다.

방법 포스트 프로세서를 테스트 할 ActivePivot에 연결 보여줍니다 com.quartetfs.pivot.client.WebServiceClient이있다? ActivePivot 릴리스 4.3.5부터 격리 된 사후 프로세서 테스트 전용 프레임 워크가 없습니다. 포스트 프로세서는 쿼리 (MDX 쿼리 또는 GetAggregate 쿼리)를 통해 테스트됩니다. 물론 사후 프로세서 구현에 몇 가지 유틸리티 메소드가있는 경우 표준 단위 테스트에서 하나씩 테스트 할 수 있습니다.

0

ActivePivot 기반 프로젝트를 테스트하려면 Spring 구성을 다시 사용하는 것이 더 간단합니다. 이것은 ClassPathXmlApplicationContext 수행 할 수 있습니다 : 당신의 봄이 실제로 좋아하는 경우

ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); 

이 간단한 테스트를 확인합니다. 당신이 당신의로드 층을 확인하려면

IQueriesService queriesService = context.getBean(IQueriesService.class); 
queriesService.execute(new MDXQuery(someMDX)); 

, 당신은 할 수 있습니다 :

IStoreUniverse storeUniverse = context.getBean(IStoreUniverse.class); 
for (IRelationalStore store : storeUniverse.values) { 
    assertEquals(hardcodedValue1, store.getSize()) 
    assertEquals(hardcodedValue2, store.search("someKey", "someValue").size()) 
} 

이 방법을, 그렇지 쿼리를 실행하려면 다음, 다음을 수행 할 수 웹 응용 프로그램 컨테이너를 시작해야합니다. 일부 컨테이너를 사용할 수 있어야하기 때문에 실패 할 수 있습니다 (예 : 동시에 여러 개의 테스트를 실행할 수 없음)..init에 초점 포인트 ILocations에라는 평가 방법 :

포스트 프로세서 테스트에 쉽게 기본 또는 DynamicAggregation 중 포스트 프로세서를해야한다. 고급 포스트 프로세서는 합리적인 단위 테스트를받을 수 없습니다. 그런 다음 가능한 한 간단하지만 포스트 프로세서가 주어진 MDX 쿼리를 작성하도록 조언합니다.

모든 단위 테스트 프레임 워크 및 모의 프레임 워크

사용할 수 있습니다. 그래도 JUnit과 Mockito를 사용하여 조언합니다.

0

Spring4JUnit을 사용하여 컨텍스트를 시작하는 것이 좋습니다. 그런 다음 빈을 autowire하고 쿼리 서비스 및 활성 피벗 관리자와 같은 항목에 직접 액세스 할 수 있습니다.

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations = {"classpath:SPRING-INF/ActivePivot.xml", "classpath:cusomTestContext-test.xml"}) 

... 

@Resource 
private IActivePivotManager manager; 

@Resource 
private IQueriesService queriesService; 

@Test 
public void testManagerOk() { 
    assertNotNull(manager); 
    assertTrue(manager.getStatus().equals(State.STARTED)); 
} 

@Test 
public void testManagerOk() { 
    // run a query with the queries service 
} 
... 

테스트에 대한 사용자 정의 테스트 속성을 별도의 컨텍스트 파일에 정의 할 수 있습니다 (예 : 테스트 데이터 집합로드).