실패한 테스트를 어디에서 진행해야합니까?


14

방금 GitHub 리포지토리의 브랜치 설정을 변경하여 내 [다음] 브랜치에 풀 요청을 통한 전달 CI 빌드가 필요합니다.

테스트 실패에 대한 여러 팀원과의 토론이 이어졌습니다.

맥락 상 ...

리포지토리에는 릴리스가있을 때만 PR되는 [master] 브랜치가 있으므로 [master]에는 메이저, 마이너, 핫픽스, 베타, 알파 / 여부에 관계없이 마지막 릴리스 시점 의 코드가 포함 됩니다 시험판 빌드.

[next] 브랜치는 "default"브랜치이며, "release-ready"코드를 유지 하려고 합니다. 기술적으로 해당 지점은 언제든지 [마스터]에게 PR되어 릴리스 될 수 있습니다.

개별 포크에는 자체 개발 지점이 있으며 기고자 PR은 [다음]에 있습니다.

사소한 PR을 검토 할 때 기고자의 dev 브랜치를 "검토"브랜치에 병합하고, 신속하게 수정할 수있는 사항을 발견하면 변경 사항과 새로운 (때로는 실패한) 테스트 및 PR을 커밋 / 푸시합니다. 기고자의 dev 브랜치로 돌아갑니다. 변경 사항을 병합하면 새 실패 테스트를 통과 한 다음 PR을 동기화 한 다음 PR을 [다음]으로 병합합니다.

그러나이 질문은 테스트 통과에 관한 것이 아니라 실패한 것에 관한 것입니다.


실패한 테스트는 수정해야 할 사항을 문서화합니다.

알려진 버그에는 작동하지 않는 것이 무엇인지 알 수 있도록 테스트를 작성해야합니다.

기술적으로 GitHub 이슈 목록 ( 및 / 또는 레이블로 필터링 )도 그렇게합니다. 버그를 문서화하기 위해 많은 실패한 테스트를하는 것도 좋은 방법 입니까?

에 실패한 빌드는 [다음] "인 릴리스 준비는"아이가 할 "준비되는"같은 비트입니다 우리가하지 않는 것을 해제 준비 ...하지만 의미 - 당신은 결코 것없는 아주 이것에 대한 준비를하고, 어딘가에 (가변적 중요성이있는) 어딘가에 릴리스에 잘못 될 수 있습니다.


따라서 테스트를 [다음]으로 만 진행하고 있습니다. 그러면 실패한 테스트를 어디에서 추진해야합니까? PR / 검토 과정 이외의 의미입니까?

예를 들어, 사용자가 이슈 목록에 새로운 버그를보고하고, 실패한 테스트 스위트를 작성하고 싶습니다. 수행해야 할 사항과 위치를 지정하여 새로운 기고자들이 더 쉽게 찾을 수 있도록합니다. 결국에는 PR 수정.

이 실패한 테스트를 어디에서 추진해야합니까? 아니면 어디에서나 실패한 테스트를 푸시하는 것이 좋은 생각입니까?


@PhilipKendall 좋은 지적! 우리는 여전히 프로세스를 미세 조정하고 있습니다. VS가 "결론되지 않은"테스트와 함께 "무시"테스트를 수행하는 방법이 마음에 들지 않습니다. 하위 수준 테스트 중 하나가 실패하면 테스트의 절반이 실패하는 것을 원하지 않으므로 전제 조건이 충족되지 않을 때 결정적이지 않습니다. ; 이로 인해 테스트는 올바른 이유로 실패를보고하고 작성된 내용을 테스트 할 수 없을 때 "결론적이지 않습니다". 우리는 (더 이상) 많은 것을 가지고 있지 않으므로 무시하는 것이 옵션 일 있습니다 ... 그러나 무시 한다면 실패한 테스트 입니까?
Mathieu Guindon

검토 과정 중에 코드 작성이 필요한 이유는 무엇입니까? 버그가 보이면 PR에 주석을 달고 선택적으로 PR을 거부하십시오.
제임스

@James 글쎄, 나는 코드 작성을 좋아 한다. 더 많은 기여자가 참여하는 것 외에도 실제 코딩보다 더 많은 GitHub 유지 관리 및 PR (홍보) 작업을하고있다!
Mathieu Guindon

답변:


11

이 상황에서 내가 할 일은 실패한 테스트를 "무시"로 표시하는 것입니다. 나중에 테스트해야 할 것을 알 수 있도록 테스트를 계속하고 있지만 깨진 빌드로 끝나지 않을 것입니다. .

문제를 해결하기 위해 각 테스트에 이슈 트래커 참조로 태그를 지정하면 문제를 쉽게 묶을 수 있습니다.


4

전체 공개 : 저는 토론에 참여한 사람 중 하나입니다.

저장소의 마스터 브랜치는 마스터 브랜치가 아닙니다. 마스터로의 병합은 "실제 목적"을 제공하지 않으며 해당 지점은 지점이해야 할 일을하지 않습니다 (즉, move ).
이 분기를 최신 릴리스의 태그로 남용하고 있습니다.

지점을 사용하는 대신 태그를 사용하십시오. 릴리스하려면 주제 분기와 같이 "릴리스 지점"에서 필요한 단계를 수행하십시오. 그런 다음이를 [다음]에 병합하고 태그를 붙입니다.

[다음] 수행되는 역할은 마스터 브랜치의 역할입니다. 출시 준비된 코드 만 들어갑니다. 다른 것은 [개발] 지점이 될 것입니다. 개발 지점에는 안정화 될 작업이 포함되어 있습니다 . 즉, [마스터]를 제거하고 [다음]과 같은 방식으로 용도를 변경 하고 "안정적인"작업을위한 다른 브랜치생성하십시오 .

테스트에 실패하고 규칙적인 버그를 상기시키는 것이 규칙보다 예외이기 때문에 불안정한 브랜치를 생성하고 파괴하는 데 너무 많은 문제가 없어야합니다.


1
[master]에 최신 릴리스가 있으면 마지막 릴리스를 쉽게 분기하여 핫픽스를 발행 할 수 있습니다. 그런 다음 핫픽스를 [다음]으로 PR 할 수 있고 거기에서 모든 dev 분기로 .. 또는 뭔가 빠졌습니까?
Mathieu Guindon

2
당신은 할 수 있습니다 git checkout -b HotFix ReleaseTag(즉, 체크 아웃 구문을 올바르게 만드는 브랜치를 기억한다면). 이것은 ReleaseTag 오프 핫픽스 지점을 만들어야합니다
Vogel612
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.