Open KMU-dyheo opened 1 year ago
현재 저희 프로젝트 내에는 테스트코드가 작성되어 있지 않고 workflow에도 Automated Testing을 하고 있지 않는데요. 프로젝트 운영 방식이 오픈소스 기여와 유사하게 진행되고 있는 가운데 pr이 받아들여지기 위해선 자신의 pr에 대한 테스트 코드 작성은 꼭 필요하다고 생각합니다.
어떤 pr이냐에 따라 포함되는 테스트 코드의 유형도 달라질 것 같은데 보통은 유닛코드 테스트가 주를 이룰 것 같습니다. 만약에 'ui 개선' pr이라면 간단하게 다음과 같은 테스트 코드를 포함시킬 수 있을 것 같습니다. 현실적으로 자잘한 것들에 대해서는 일일이 할 수는 없을 것 같고 변경 내용 중 중요한 로직들에 대해서만 하면 될 것 같습니다.
/* 추가된 코드 내용, gpt가 작성해줬습니다. ㅎㅎ*/
import React, { useState } from 'react';
const Dropdown = ({ items }) => {
const [selected, setSelected] = useState(null);
return (
<div>
<select data-testid="dropdown" onChange={e => setSelected(e.target.value)}>
{items.map((item, index) => (
<option key={index} value={item}>
{item}
</option>
))}
</select>
{selected && <div data-testid="selected-display">{selected}</div>}
</div>
);
}
export default Dropdown;
/* test code */
import React, { useState } from 'react';
const Dropdown = ({ items }) => {
const [selected, setSelected] = useState(null);
return (
<div>
<select data-testid="dropdown" onChange={e => setSelected(e.target.value)}>
{items.map((item, index) => (
<option key={index} value={item}>
{item}
</option>
))}
</select>
{selected && <div data-testid="selected-display">{selected}</div>}
</div>
);
}
export default Dropdown;
제가 생각하는 파이썬으로 테스트 코드가 포함된 예시 pr입니다. [link]
workflow runner는 github-hosted의 가상머신을 이용하는 방법과 self-hosted 러너를 사용하는 방법이 있는데요. github-hosted runner는 public repo의 경우 무료로 제공되고 직접 프로비저닝을 할 필요도 없어서 좋기는 한데 만약 저희 코드에 공개 시 민감한 코드가 추가되는 등 다양한 이유로 self-hosted를 써야 할 수도 있을 것 같습니다. 저는 현업에서 일해보지 않아서 또 어떤 니즈가 더 있을 지 잘 모르겠습니다... 아시는 분 코멘트 달아주시면 감사하겠습니다!! 만약 self-hosted가 필요하다면 가격부담이 생기니 필요성에 대한 논의가 있어야 할 것 같네요. 아래는 self-hosted 러너 github actions를 사용하는 기업들의 기술 문서입니다. 카카오 엔터, 데보션, 다나와
테스트 자동화 외에도 linter를 추가해도 좋을 것 같습니다. 가독성이 좋아지는 장점도 있고 코드 수정하고 pr을 올릴 때 스타일이 달라서 'file changed'에 pr 내용 외에 코드가 포함되는 걸 막을 수 있어서 좋았던 것 같습니다. 또 웹페이지의 경우 netlify랑 레포 연결해 놓으면 자동으로 pr마다 배포해줘서 각 pr마다 ui가 어떻게 바뀌었는 지 빨리 확인 할 수 있어서 좋았던 경험이 있습니다
Good works!
상세한 논의를 해보도록 합시다.