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


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.