2012-04-23 44 views
13

Tôi đang học các dây giềng với bài kiểm tra Đơn vị Zend Framework ứng dụng. Cho đến nay tôi đã thiết lập PHPUnit để làm việc với Zend Framework và đã bắt đầu viết một số Trường hợp thử nghiệm đơn giản.Phạm vi mã PHPUnit

Vấn đề của tôi là tôi tự hỏi tại sao Code Coverage không hoạt động mặc dù được đặt trong thẻ ghi nhật ký trong số phpunit.xml của tôi.

Tôi không nhận được bất kỳ lỗi nào nhưng không có báo cáo bảo hiểm nào được tạo.

Tuy nhiên nó hoạt động khi tôi chạy phpunit --coverage <dir>

Phần khai thác gỗ của phpunit của tôi là như sau:

<phpunit bootstrap="./application/bootstrap.php" colors="true"> 
     <testsuite name="CI Test Suite"> 
      <directory>./</directory> 
     </testsuite> 
     <testsuite name="Library Test Suite"> 
      <directory>./library</directory> 
     </testsuite> 

     <filter> 
      <whitelist> 
       <directory suffix=".php">../application/</directory> 
       <exclude> 
        <directory suffix=".phtml">../application</directory> 
        <file>../application/Bootstrap.php</file> 
        <file>../application/controllers/ErrorController.php</file> 
       </exclude> 
      </whitelist> 
      <logging> 
       <log type="coverage-html" target="./log/report" charset="UTF-8" yui="true" 
    highlight="true" lowUpperBound="50" highLowerBound="80" /> 
       <log type="testdox" target="./log/testdox.html" />  
      </logging> 
     </filter> 
    </phpunit> 

Bất cứ ai gặp này trước đây chưa? Vậy thì vấn đề có thể là gì?

+3

Tôi không có đăng nhập lồng nhau bên trong bộ lọc .... có thể tạo ra một chút khác biệt –

Trả lời

23

Đây là tệp phpunit.xml cho một trong các dự án của tôi, điều này hoạt động tốt. Như bạn có thể thấy, phần ghi nhật ký nằm ngoài phần bộ lọc, vì vậy đó có thể là vấn đề của bạn được Mark Baker bình luận. Tôi đã chọn cái này vì nó là từ một dự án nhỏ và rất đơn giản.

<phpunit bootstrap="./bootstrap.php" colors="false"> 
    <testsuite name="HSSTests"> 
     <directory>./</directory> 
    </testsuite> 

    <filter> 
     <whitelist> 
      <directory suffix=".php">d:/wamp/app_hss/</directory> 
      <exclude> 
       <directory suffix=".phtml">d:/wamp/app_hss/</directory> 
       <directory suffix=".php">d:/wamp/app_hss/tests/</directory> 
      </exclude> 
     </whitelist> 
    </filter> 

    <logging> 
     <log type="coverage-html" target="./log/codeCoverage" charset="UTF-8" 
      yui="true" highlight="true" 
      lowUpperBound="50" highLowerBound="80"/> 
     <log type="testdox-html" target="./log/testdox.html" /> 
    </logging> 
</phpunit> 

Mọi thông tin bạn có thể cần về điều này nằm trong số PHPunit manual.

+0

Bạn hoàn toàn đúng! Phần ghi nhật ký không nên nằm trong phần bộ lọc. – stevepop