2017-02-02 4 views
1

이전 프로젝트에 할당되어 현재 테스트 사례를 수행하고 있습니다. 데이터를 저장하는 특정 코드 블록에 오류가 있습니다.phpunit에서 코드 블록을 "건너 뛸 수 있습니까?"

그러나이 메서드는 헤더를 출력하므로 phpunit에 "헤더 정보를 수정할 수 없습니다"라고 표시됩니다.

phpunit에게 그 방법을 실행하지 말라고하는 방법이 있습니까?

$ codeCoverageIgnore는 codecoverage의 데이터까지만 문제를 해결하지 못합니다. 나는 phpunit에게 "이 것을 실행하지 말라"는 것을 발견 할 수 없다.

header('Content-Type: application/vnd.ms-excel;charset=utf-8'); 
    header('Content-type: application/x-msexcel;charset=utf-8'); 
    header('Content-Disposition: attachment;filename="' . $this->sFileName . '"'); 
    header('Cache-Control: max-age=0'); 

그리고 여기에 내가 phpunit을에서 얻을 오류입니다

헤더 정보를 수정할 수 없습니다 - 이미 (출력에 의해 전송 헤더 D에 시작 : \ xampp7 PHP는 \ 배 \ \ phpunit을 \ 백분율 \ Printer.php : 172)

+0

안녕하세요. 우리가 당신을 더 잘 도울 수 있도록 몇 가지 코드 및 시도를 추가하십시오. 더 잘받은 질문을하려면 [ask]와 [mcve]를 읽으십시오. – davejal

+0

$ this-> warningOff(); 또는 phpunit.xml에서 stderr = "true" – mwweb

답변

0

머리말이 당신이 오버라이드 할 수있는 함수로 출력되도록 코드를 리팩터링하거나 전혀 실행하지 않기 위해 output buffering을 사용하여 헤더 (및 다른 출력) 그들을 보내지 않고. 버퍼링 스타일을 사용하면 출력을 검색하고 확인한 다음 버릴 수 있으므로 이점이 있습니다 (ob_get_clean 또는 ob_get_contents & ob_clean).