42 피신 테스트 툴입니다.
서브젝트 폴더에 해당 스크립트 파일을 복사하여 넣고 bash run.sh
로 실행시킵니다.
- 해당 서브젝트의 최상위 폴더에 ``test_cxx_gen` 파일을 복사하여 붙여넣습니다.
bash run.sh
로 쉘 스크립트를 실행시킵니다.
- 아래 사항이 지켜져야 테스트가 올바로 작동합니다.
ex00
,ex01
등의 문제 폴더 안에 소스파일이 하나만 존재해야 합니다.- 소스파일 이름과 함수 이름이 일치해야 합니다.
- 테스트를 실행을 하게 되면
src
폴더와build
폴더가 자동으로 생성되며 필요한 파일들이 추가적으로 생성됩니다. 이 파일/폴더들은 오직 테스트를 위한 것이기 때문에 언제든지 삭제해도 무방합니다. - 프로그램에 결함이나 오류가 있을 수 있으므로 본인이 작성한 소스코드는 관리를 잘해주세요. 삭제하거나 옮기는 기능을 최대한 지양했지만 불상사는 언제든 생길 수 있습니다...
- 테스트 용도로만 이용해주시기 바랍니다. 평가 시에는 보조적으로만 이용하시고 코드를 살펴보는 걸 중점적으로 진행하면 좋을 것 같습니다.
- 기타 문의는 이슈를 남기거나 eszqsc112@gmail.com 으로 연락주세요.
옵션을 추가하여 테스트의 동작을 더 세밀하게 지정할 수 있습니다.
-c
: 컴파일 및 실행만 수행합니다. (플래그 설정 되어있음)-n
: norminette만 수행합니다. (플래그 설정 되어있음)-{숫자}
:ex{숫자}
만 테스트를 수행합니다. (옵션으로 넣는 숫자는 앞에 0이 없어야 합니다.) (예:-4
로 해야ex04
의 테스트를 진행함)
예시 (위 이미지에서 c03 폴더에 터미널을 켰다고 가정)
bash asdf/run.sh -4 -c
: ex04만 컴파일하여 수행 (norminette 검사 수행하지 않음)
test_c_template 란 서브젝트별 테스트를 더 편리하게 생성하기 위하여 미리 어느정도 공통된 내용을 짜 놓은 것입니다. 서브젝트마다 테스트의 구조가 크게 다르지 않기 때문에 새로운 서브젝트의 테스트를 만들 때마다 이 test_c_template 으로부터 새 테스트를 만들어나가면 됩니다.
run.sh
: 테스트가 동작하는 로직이 담겨져 있습니다.testcode
: 실제로 테스트를 수행할 코드와 기대되는 결과값 등이 작성되어 있습니다. 파일 내에서 어떤 영역을레이블:
로 구분하며, 영역마다 저마다의 역할이 있습니다.include:
#include 할 헤더들의 목록입니다.ex{숫자}:
해당 ex문제에서 실행할 코드입니다. ( >= 0.2) 프로그램을 실행시키는 과제일 경우, 즉 main 함수가 포함되어 있는 경우에는 해당 코드는 모두 명령 실행모드로 됩니다. 이 때, ;로 명령어를 구분하면 됩니다. test 명령은 자동으로 해당 코드의 목적 파일 이름으로 대체됩니다. (예: test 1 2 3 ; test 4 5 6: 해당 프로그램을 실행시키는데, 첫 번째에는 1, 2, 3을 인수로 넘기며, 두 번째 실행에는 4, 5, 6을 인수로 넘깁니다.)ex{숫자}-expected:
테스트 기댓값으로 나오는 평문입니다. 코드랑은 아무런 관계가 없고, 텍스트 그대로 출력됩니다. 중요한 곳은 아닙니다.end:
testcode
파일의 끝을 나타내는 용도입니다.
2020. 7. 15.
- c02 업데이트 (
run.sh
파일 갱신, ex01 잘못된 테스트 코드 수정) - c03 업데이트 (
run.sh
파일 갱신) - c04 업데이트 (
run.sh
파일 갱신) - c05 업데이트 (
run.sh
파일 갱신) - (0.3) main 외부에 선언할 것
testcode
에 지정할 수 있도록 하기. (ex00-other: 레이블 활용) - 컴파일 실패 유무에 따라 파일 실행시키기/실행시키지 않기 기능 추가 (컴파일이 되지 않음에도 가장 최근에 성공한 실행 파일이 실행되는 문제 해결)
- (0.3) Exercise 폴더 내에 있는 모든 .c 파일을 읽어서 구현된 함수에 대하여 선언부를 자동으로 추가하도록 함. (소스 파일이 여러 개일 때 동작하지 않던 문제 해결)
- (0.3) .c 파일을 제외한 파일은 무시됨. (폴더에 상관 없는 파일들이 포함되어 있을 경우 제대로 동작하지 않던 문제 해결)
2020. 7. 14.
- c06 최초 업로드
- c05 최초 업로드
2020. 7. 13.
- C 과제 테스트용 스크립트 run.sh 파일을 다소 개선했습니다.
- 재귀함수 등이 존재할 때 테스트 코드가 잘 작성되지 않던 문제 수정
- 프로그램을 만드는 과제일 때 (소스 파일 내에 main 함수 선언이 되어있을 시) 자동으로 인식하여 테스트코드를 c코드가 아닌 터미널 명령어로 인식하여 명령어 실행. (자세한 사용법은 안내 참조)
- norminette 3.0 대응 미비
- 헤더 파일 (
.h
)을 읽지 못함. (c08
이후는 다소 제한됨) - Makefile 관련 기능 없음.
- c03-ex02 테스트코드에서 처음 배열을 초기화하는 과정에서 쓰레기값이 들어가있을 수 있는 문제 (mosong 제보)
- 소스 파일이 여러 개이거나
ex..
폴더에 상관 없는 파일들이 포함되어 있을 경우 제대로 작동하지 않음