2013-03-22 2 views
0

PHP에서 단위 테스트 및 단위 테스트를 처음 사용했습니다. 저는 PHP 5.3.8과 PHPUnit 3.7.18을 사용하고 있습니다. 나는 간단한 수학 수업과 수학 시험 클래스가 있습니다PHPUnit 버전 문제 - 브라우저와 명령 행에서 실행

Math.php을

<?php 

class Math { 

    protected $val1; 
    protected $val2; 

    public function set_values($val1, $val2) { 
     $this -> val1 = $val1; 
     $this -> val2 = $val2; 
    } 

    public function get_values() { 
     return $this -> $val1; 
     return $this -> $val2; 
    } 

    public function add_values() { 
     $this -> val1 + $this -> val2 = 5; 
     return 5; 
    } 
} 

?> 

Math_Test.php

<?php 

require_once 'PHPUnit/Autoload.php'; 
require_once 'Math.php'; 

class Math_Test extends PHPUnit_Framework_TestCase { 

    protected $value1; 
    protected $value2; 

    public function test_add() { 

     $math = new Math(); 

     $expected = 7; 
     $actual = $math -> add_values(); 
     $this -> assertEquals($expected, $actual); 

    } 

    protected function set_up() { 
     $this -> math = new Math(); 
     $this -> math -> setValues(2, 3); 
    } 

    protected function tear_down() { 
     unset($this -> value1); 
     unset($this -> value2); 
    } 
} 

?> 

내가 이전 버전을 가지고 있기 때문에 처음에는 어려움을 겪고 있었다 내 xampp에 PHPUnit을 설치하십시오. 나는 PEAR과 PHPUnit을 업그레이드하고 위의 테스트를 수행 할 수있었습니다.

제게 혼란스러운 점은이 테스트를 명령 줄에서 실행하여 예상되는 결과를 얻을 수 있다는 것입니다. 그러나 나는 브라우저에서도이 프로그램을 실행할 수 있기를 희망했기 때문에 결과를 그렇게 볼 수있었습니다. 내 동일한 설치와

, 내가 잘 브라우저에서 실행하려면이 유사한 테스트를 얻을 수 있습니다 (이 ..xampp\php\PEAR\PHPUnit.php의 코멘트 섹션에서 온) :

<?php 

require_once 'PHPUnit.php'; 

class MathTest extends PHPUnit_TestCase { 
    var $fValue1; 
    var $fValue2; 

    function MathTest($name) { 
     $this->PHPUnit_TestCase($name); 
    } 

    function setUp() { 
     $this->fValue1 = 2; 
     $this->fValue2 = 3; 
    } 

    function testAdd() { 
     $this->assertTrue($this->fValue1 + $this->fValue2 == 5); 
    } 
} 

$suite = new PHPUnit_TestSuite(); 
$suite->addTest(new MathTest('testAdd')); 

$result = PHPUnit::run($suite); 
print $result->toHTML(); 

?> 

공지 사항 PHPUnit.phpAuotloader.php 최신의 사용 및 PHPUnit_TestCasePHPUnit_Framework_TestCase. 어쩌면 버전이 내 시스템에 섞여서 문제가 생길 수 있습니까?

브라우저에서 최신 버전 테스트 (첫 번째 테스트)를 실행하려면 어떻게해야합니까? 테스트 스위트와 결과 클래스를 사용하여 HTML로 실행하고 표시하는 것과 같은 것을 기대합니다. 유사 콘텐츠를 사용해 보았습니다.

Fatal error: Class 'PHPUnit' not found in...

내가 phpunit을 확인하고 내 include_path 모든 것이 작동하는 것 같군 :

나는 첫 번째 테스트를 위해, 두 번째 테스트에서와 같이 브라우저 섹션에 인쇄를 설정하는 노력이 오류가 발생합니다. 또한, 터미널에서 테스트가 정상적으로 실행됩니다.

VisualPHPUnit을 설치했으며이 도구는 브라우저에서 시각적 테스트를보고 싶은 사용자에게 적합합니다. 이 질문으로 어디든 갈 수 있다면, 아마도 VisualPHPUnit이 나를 위해 일하는 것에 집중할 것입니다.

이 글을 쓰고 편집하는 방법을 많이 배웠습니다. 의견을 보내 주셔서 감사합니다.

+0

정확히 어떤 문제입니까/문제입니까? – fiunchinho

+0

질문에 추가 ... 기본적으로 첫 번째 테스트에서는 오류가 발생합니다. 나는 곧 오류를 추가 할 것이다. – nicorellius

+0

설명서 (http://www.phpunit.de/manual/current/en/fixtures.html)에서는 set_up() 및 tear_down()이 아닌 setUp() 및 tearDown()을 사용해야한다고 말합니다. 두 번째 테스트에서는 PHPUnit.php 파일을 포함합니다. 그 파일의 내용은 무엇입니까? 아마도 PEU에 이전 버전의 PHPUnit이 설치되어있을 것이므로 PHPUnit_Framework_TestCase에서 테스트 클래스를 상속받을 때이 버전을 사용하게 될지 궁금합니다. 두 번째 테스트에서는 PHPUnit.php를 포함하여 새로운 버전을 사용할 수 있습니다. – fiunchinho

답변

0

toHTML() 메서드는 PHPUnit의 최신 버전에 포함되어 있지 않습니다. 내가 사용하는 PHPUnit 저장소를 검색했는데이 함수의 인스턴스가없는 것 같습니다. 나는 어쩌면 그것이 어떤 이유로 든 끝났다고 생각합니다.

내가 틀렸다면 확실하게 대답 할 것이기 때문에 저를 바로 잡아주십시오.

터미널에서 PHPUnit을 실행하고 VisualPHPUnit을 사용하는 것에 만족합니다.