경고
CodeIgniter4로 업그레이드하는 것이 좋습니다.
CodeIgniter 3.x와 함께 PHPUnit을 사용하는 더 쉬운 방법입니다.
CodeIgniter 코어 파일을 전혀 수정할 필요가 없습니다.
컨트롤러 테스트를 쉽게 작성할 수 있습니다.
아마도 테스트할 수 없는 것은 없습니다.
잘 문서화되어 있습니다.
PHP 7.3 이상
Monkey Patching을 사용하는 경우 PHP-Parser 4.2 이상을 Composer 종속성으로 사용해야 합니다.
코드이그나이터 3.x
CodeIgniter4로 업그레이드하고 싶다면 #361을 참고하세요.
PHPUnit 9.3 이상
PHPUnit 9.2 이하 버전을 사용하려면 ci-phpunit-test 2.x를 사용하세요.
넷빈즈
프로젝트 속성 > 테스트 > PHPUnit 으로 이동하여 사용자 정의 테스트 스위트 사용 확인란을 선택한 다음 application/tests/_ci_phpunit_test/TestSuiteProvider.php
선택합니다.
변경 로그를 참조하세요.
codeigniter/ ├── application/ │ └── tests/ │ ├── _ci_phpunit_test/ ... don't touch! files ci-phpunit-test uses │ ├── Bootstrap.php ... bootstrap file for PHPUnit │ ├── DbTestCase.php ... DbTestCase class │ ├── TestCase.php ... TestCase class │ ├── controllers/ ... put your controller tests │ ├── libraries/ ... put your library tests │ ├── mocks/ │ │ └── libraries/ ... mock libraries │ ├── models/ ... put your model tests │ └── phpunit.xml ... config file for PHPUnit └── vendor/
https://github.com/kenjis/ci-phpunit-test/releases에서 최신 ci-phpunit-test
다운로드하세요.
압축을 풀고 application/tests
폴더를 CodeIgniter 프로젝트의 application
폴더에 복사합니다.
그게 다야.
$ cd /path/to/codeigniter/$ 작곡가에는 kenjis/ci-phpunit-test:^3.0 --dev가 필요합니다.
그리고 install.php
실행하세요:
$ PHP 공급업체/kenjis/ci-phpunit-test/install.php --from-composer
위 명령은 항상 기존 파일을 덮어씁니다.
CodeIgniter 프로젝트 루트 폴더에서 실행해야 합니다.
사용자 정의 폴더 경로를 사용하는 경우 옵션 인수를 사용하여 application
및 public
폴더를 지정할 수 있습니다.
$ php Vendor/kenjis/ci-phpunit-test/install.php -a <application_dir> -p <public_dir> -t <unittest_dir>
따라서 기본값은 다음과 같습니다.
$ php Vendor/kenjis/ci-phpunit-test/install.php -a 애플리케이션 -p 공개 -t 애플리케이션/테스트
그러나 일부 경로가 올바르지 않을 수 있습니다. 이 경우 테스트/Bootstrap.php에서 수정하십시오.
https://github.com/kenjis/ci-phpunit-test/releases에서 최신 ci-phpunit-test
다운로드하세요.
application/tests/_ci_phpunit_test
폴더의 압축을 풀고 교체합니다.
변경 로그를 읽으십시오.
$ cd /path/to/codeigniter/$ 작곡가 업데이트 kenjis/ci-phpunit-test
변경 로그를 읽으십시오.
application/test/_ci_phpunit_test
디렉터리를 생성한 이전 버전의 ci-phpunit-test
에서 업그레이드하고 이제 Composer에서 ci-phpunit-test
직접 사용하려는 경우 몇 가지 추가 단계가 있습니다.
이전 테스트 라이브러리 디렉터리를 삭제합니다.
$ rm -rf /경로/to/codeigniter/application/tests/_ci_phpunit_test
application/tests/Bootstrap.php
파일을 편집합니다. "기본 경로 상수 설정" 섹션 하단에 다음을 추가합니다.
정의('CI_PHPUNIT_TESTPATH', implode(DIRECTORY_SEPARATOR, [dirname(APPPATH), 'vendor', 'kenjis', 'ci-phpunit-test', 'application', 'tests', '_ci_phpunit_test'] ).DIRECTORY_SEPARATOR);
그리고 __DIR__ . '/_ci_phpunit_test/
또는 TESTPATH . '_ci_phpunit_test
CI_PHPUNIT_TESTPATH를 사용한 TESTPATH . '_ci_phpunit_test
CI_PHPUNIT_TESTPATH . '
. (예를 들어 __DIR__ . '/_ci_phpunit_test/CIPHPUnitTest.php'
CI_PHPUNIT_TESTPATH . '/CIPHPUnitTest.php'
가 됩니다.)
테스트를 실행하기 전에 PHPUnit을 설치해야 합니다.
Composer를 사용하는 경우:
$ 작곡가에는 phpunit/phpunit --dev가 필요합니다.
$ cd /path/to/codeigniter/$ Vendor/bin/phpunit -c application/tests/PHPUnit 9.5.4 - Sebastian Bergmann 및 기여자 제작.... 3 / 3 (100%)시간: 00:00.102, 메모리: 12.00 MBOK (3개 테스트, 3개 어설션)Clover XML 형식으로 코드 적용 범위 보고서 생성 중... 완료 [00:00.002]HTML 형식으로 코드 적용 범위 보고서 생성 중... 완료 [00:00.012]
커버리지 보고서를 생성하려면 Xdebug가 필요합니다.
단일 테스트 케이스 파일을 실행하려면 다음을 수행하십시오.
$ 벤더/bin/phpunit -c 애플리케이션/테스트/애플리케이션/테스트/모델/Category_model_test.php
예를 들어 Inventory_model
의 테스트 케이스 클래스는 다음과 같습니다.
<?phpclass Inventory_model_test는 TestCase를 확장합니다. {공용 함수 setUp(): void{$this->resetInstance();$this->CI->load->model('Inventory_model');$this->obj = $this->CI->Inventory_model; }공개 함수 test_get_category_list() {$expected = [1 => '도서',2 => 'CD',3 => 'DVD', ];$list = $this->obj->get_category_list();foreach ($list as $category) {$this->assertEquals($expected[$category->id], $category->name); } }공개 함수 test_get_category_name() {$actual = $this->obj->get_category_name(1);$expected = '도서';$this->assertEquals($expected, $actual); } }
예를 들어 Welcome 컨트롤러의 테스트 케이스 클래스는 다음과 같습니다.
<?phpclass Welcome_test는 TestCase를 확장합니다. {공용 함수 test_index() {$output = $this->request('GET', 'welcome/index');$this->assertStringContainsString('<title>CodeIgniter에 오신 것을 환영합니다</title>', $output); } }
자세한 내용은 테스트 작성 방법을 참조하세요.
함수 및 클래스 참조를 참조하세요.
팁을 참조하세요.
ci-phpunit-test 의 일부 기능은 다음 독립형 패키지에서 사용할 수 있습니다.
https://github.com/kenjis/phpunit-helper
https://github.com/kenjis/monkey-patch
ci-phpunit-test용 CodeIgniter 테스트 애플리케이션
CodeIgniter Composer 설치 프로그램
CodeIgniter 3.0용 Cli
CodeIgniter 간단하고 안전한 나뭇가지
코드이그나이터 교리
CodeIgniter 배포자
CodeIgniter3 파일 이름 검사기
CodeIgniter 위젯(일부 보기) 샘플
CodeIgniter3 네임스페이스 컨트롤러