2016-11-07 1 views
-5

로컬 및 TFS에서 실행될 때 전달되는 C# 솔루션의 10K + 단위 테스트가 있습니다.Jenkins에서 단위 테스트가 실패했습니다.

이제 Jenkins 솔루션 스택을 설정 중이며 약 250 개의 Unitest가 일관되게 실패하는 문제에 직면하고 있습니다.

Visual Studio와 Commnad 프롬프트 (MSTest)를 사용하여 jenkins 설치 서버에서 실행하면 동일한 단위 테스트가 통과됩니다.

무엇이 문제라고 생각하십니까? 이 문제를 보는 데 도움이 될 것입니다.

편집 1 :

나는 자체가 이상한 일이다 문제에서 아무것도 찾을 수 연구되지는 할 수 있었다. 명확하지 않은 경우 다운 투표 대신 질문을 제기하십시오.

편집 2 :

나는이 문제를 찾을 수 있어요. unittests dll 설정 파일과 함께 있습니다. 구성 파일을 제거하여 서버에서 MSTest를 실행하면 Jenkins 설치에 실패한 동일한 테스트 세트가 실패합니다.

나는 unittests dll 구성 파일을로드하기 위해 Jenkins 포털에서 구성하는 단계를 수정해야한다고 생각합니다.

답변

0

제 생각에는 실제로 단위 테스트가 아니라 통합 테스트 나 그보다 더 나쁜 테스트가있을 수 있으며 비 결정적으로 실패합니다. 그 외에도 소스 코드를 게시하지 않고서는 불가능한 일을 사람들에게 요구하고 있습니다.

Jenkins IMO에 대해 알고있는 컨설턴트를 게시하거나 채용하십시오.

+0

답장을 보내 주셔서 감사합니다. 나는 이것이 unittests라고 확신한다, 나는 그들이 실패하고있는 이유를 볼 필요가있다. –

0

조건부 컴파일 기호에 문제가있을 수 있습니다 (예 : DEBUGRELEASE 코드). 대개 VS에서는 디버그 빌드, 릴리스 빌드의 CI 서버에서 테스트를 실행합니다.

일부 전역 상태가 올바르게 정리되지 않은 것을 확인하십시오. 테스트가 끝난 후 여전히 실행중인 일부 스레드는 나중에 테스트가 다른 테스트 dll에있을 때에도 나중에 테스트를 손상시킬 수 있습니다. 테스트 실패는 테스트 실행 순서에 따라 달라지기 때문에 때로는이를 감지 할 수 있습니다.

종종 문제가되는 또 다른 문제는 파일의 테스트 데이터에 대한 종속성입니다. 테스트가 실제로 실행되는 가상화 된 환경에서는 파일이 누락 될 수 있습니다. Deployment 특성을 사용하십시오.

0

나는 NCrunch과 비슷한 문제가 있습니다. 어쩌면 VS에서 "빌드"태그를 플랫폼 대상으로 체크인 할 수 있습니다. 젠킨스 (Jenkins)가 구성된 것과 같아야합니다. 예를 들어, "Platform target"은 x64이며 Jenkins에서도 사용해야합니다.

관련 문제