2009-04-23 4 views
7

큰 NUnit 테스트 세트가 있습니다. 주어진 실행에서 결과를 데이터베이스로 가져온 다음 결과 세트를 특성화하고 사용자에게 제시해야합니다 (테스트 실패에 대한 이메일, 결과 검토 용 웹 프레젠테이션). 시간이 지남에 따라 실패율을보고하기 위해 시간이 지남에 따라 여러 번 추적해야합니다.NUnit 결과를 가져 오기위한 데이터베이스?

XML은 nunit-console에 의해 생성 된 XML입니다. 필자는 최소한의 불만을 가지고 XML을 가져 와서 일부 데이터베이스에 가져 와서 결과를 유지하고 표시하는 데 사용할 수 있습니다. 또한 정렬 할 수있는 여러 가지 사용자 지정 범주가 있습니다.

개인적인 필요에 맞게 사용자 정의 할 수있는 이러한 유형의 데이터 가져 오기를 처리 할 수있는 데이터베이스 스키마를 알고있는 사람이 있습니까? 이런 종류의 문제는 공통적 인 것처럼 보입니다. 그래서 일반적인 해결책이 있어야하지만, 나는 찾을 수없는 것 같습니다. 이전에 그러한 솔루션을 구현 한 사람이라면 조언도 환영 할 것입니다.

+0

고객/스테이크 소유자가 nunit 결과를 활용하여 기능을 주장하면 (사양) 완료됩니다. 행동 주도 개발을 조사해야합니다. 이러한 프레임 워크는 결과를 읽기 쉬운 형식으로 제공합니다. http://en.wikipedia.org/wiki/Behavior_Driven_Development – mxmissile

답변

4

CruiseControl.NET 또는 TeamCity과 같은 빌드 서버를 실제로 사용하고있는 것처럼 들립니다.

테스트를 실행하기 위해 빌드 서버를 가져오고, 실패한 이유와 이유를 사람들에게 알려주는 작업을 수행합니다.

나는 TeamCity를 설치하는 것이 몇 배 더 쉽기 때문에이 팀을 추천합니다.

+0

빌드 서버와 관련하여 많은 부분이 있습니다. 그것은 정답 일 수도 있지만, 결과를 직접적으로 다루는 것보다 항상 또는 현저하게 좋지는 않습니다. 우리는 TeamCity에 대한 예산을 가지고 있지 않지만 (내 상사에게 다가 가기 시작하고 있다고 생각합니다.) CruiseControl.Net은 빌드를 위해 지금하는 일에 잘 맞지 않습니다. 나는 단지 NUnit과 데이터베이스를 사용하는 솔루션에 관심이있다. –

+0

무료 소프트웨어에 대한 예산을 확보하지 않은 이유는 무엇입니까? TeamCity Professional에는 비용이 들지 않습니다. –

+0

TeamCity는 비교적 간단한 프로젝트를 진행하는 소규모 팀을 위해 (Beer에서와 같이) 무료입니다. 우리도 마찬가지입니다. –

2

나는이 문제를 해결하기 위해 여기에 있습니다. 현재 XML 결과를 삽입 문으로 변환하기 위해 XSLT를 작성하는 방향으로 기울이고 있습니다. 그런 다음 명령문 SQL 해석기를 통해 삽입 명령문의 결과 파일을 실행하십시오. 이상적으로, 나는이 모든 것을 다루는 NUnit add-in/extention을 가지고 싶습니다. 불행히도 나는 찾을 수 없었다.

1

IainMH의 답변을 구축하려면 Trac을 BITTEN과 함께 사용하는 것이 좋습니다. 오픈 소스 빌드 시스템으로 n-unit 테스트를 실행하고 결과를보고 할 수 있습니다. 나는 현재 정확한 기능을 위해 그것을 사용하고 있습니다.

1

MS SQL을 사용할 때 모든 XML을 [xml] 데이터 유형의 공통 열로 가져올 수 있습니다. 이 때 xpaths, 검색 및 변환을 수행 할 수 있습니다.

1

현금으로 묶어두면 CruiseControl 또는 TeamCity의 또 다른 대안은 Atlassians Bamboo입니다. 나는 사용하기 쉽고 10 달러에 대나무를 얻을 수있는 곳에서 거래를한다는 그들의 소프트웨어에 대한 열렬한 팬이다.

-3

왜 데이터베이스에 결과가 필요합니까? 누가 그들을 사용할 것입니까? 실패 횟수는 클 수 없습니다. 그것이 (반복적으로) 개발 프로세스가 잘못 되었다면. 프로세스를 수정하십시오. 쓰레기를 없애고 (린 원칙 중 하나), 그것을 모으지 마십시오.

작은 단계 (짧은 반복, 연속 빌드)를 사용하여 종속성을 제거하십시오.

이러한 종류의 문제가있는 프로젝트가 제공되지는 않지만 취소됩니다 (결국). 일반적으로 수행되지는 않습니다.

마이클, nunit 실패를 오랫동안 추적하면 0 값을 제공합니다. 짧은 피드백 루프가 필요합니다. 지금 문제를 해결하십시오. 많은 문제를 쌓을 때까지 기다리면 소음에 압도 당할 것입니다.

좋은 문제 추적은 오른쪽 (가장 높은 가능한 추상화) 수준에서 수행됩니다. 확실히 단위 테스트가 아닙니다.

+1

문제점의 근본 원인을 식별하는 데 실패한 원인 (및시기 및 빈도)을 추적합니다. 그것 없이는 잘못된 프로세스 문제를 해결하기 위해 시간을 낭비하게됩니다. 나는 좋은 문제 추적이 희박한 개발 과정에서 _critical_이라고 말하고 싶다. –

+0

마이클, 정확히. 우리는 불충분 한 테스트 세트를 가진 레거시 코드베이스로 고통 받고 있습니다. 우리가 가지고있는 검사 (많은 수이지만 불완전한 검사를 제공함)는 결과에 어느 정도의 불일치가 있습니다. 장기간 (수개월)에 걸친 불일치를 추적하는 것이 우리의 우선 순위에 중요합니다. –

+0

비록 우리가 원칙적으로 동의하지만, 우리의 경우에도 1 일간의 실패 분석은 상당한 통찰력을 제공 할 수 있습니다. 우리는 소프트웨어가 우리 하드웨어와 어떻게 상호 작용하는지 테스트합니다. 컬러 센서에서만 오류가 발생하면 문제를 찾을 위치를 알 수 있습니다. 고해상도 흑백 센서에서만 발생하는 경우 다른 곳을 살펴볼 것입니다. 센서에는 중요 할 수도 있고 없을 수도있는 12 가지 속성이 있습니다. XML에서 결과를 분석하는 것은 어려운 일입니다. 나는 낭비를 제거하려고 시도하고있다. –

1

우리는 이것을 피하고자했지만 NUnit 결과 XML 스키마에서 데이터베이스 스키마를 생성했습니다. 그러나 NUnit은 일부 중요한 통계 ("무시"vs. "실행되지 않음"등)를 결정하기 위해 일부 처리 (부정확하고 이상 함)하기 때문에 조금 부족합니다.

우리는 여전히 결과를 가져 오기 위해 데이터베이스를 사용자 정의 할 수있는 완전한 CIT 빌드 시스템이 아닌 스키마/프로세스를 찾고 싶어하지만 현재 우리는 ' 원하는보고를 얻으려면 커스터마이징을 많이해야합니다.

+0

당신은 지금까지 가지고있는 것을 기꺼이 나누겠습니까? 나는 이것으로 돌아가서 개인적으로 NUnit에 추가로 그것을 고려하고 있습니다. –

관련 문제