2013-04-07 24 views
6

Tôi đang tuân thủ quy ước lưu trữ thử nghiệm trong mô-đun ZF2 và mọi thứ đều hoạt động tốt khi các thử nghiệm được chạy từ bên trong mỗi mô-đun. Những gì tôi muốn làm là có một phpunit.xml cấp gốc gọi các bài kiểm tra mô-đun riêng lẻ và hợp nhất chúng để tạo ra dữ liệu vùng phủ sóng và các số liệu khác.Làm thế nào để củng cố các bài kiểm tra mô-đun/ứng dụng ZF2 thành một cuộc gọi?

Vấn đề là mỗi bộ thử nghiệm riêng lẻ được khởi động trong các tệp phpunit.xml mô-đun. Cách duy nhất tôi nhận thức được việc làm là cấu hình bootstrap trong mỗi tập tin phpunit.xml mà rõ ràng là không nhận được khi chạy thử nghiệm từ gốc như các tập tin xml cá nhân được bỏ qua. Vì vậy, câu hỏi của tôi là: là có một cách cho một tập tin phpunit.xml gốc cấp để đọc các tập tin phpunit.xml và bootstrap cá nhân từ các mô-đun, một loại thừa kế cấu hình phpunit nếu bạn sẽ làm thế nào ?. Tôi có thể đi xuống con đường của văn bản này trong Phing hoặc một kịch bản CI nhưng tôi muốn nó thực hiện nhanh chóng và bẩn trong khi phát triển và giải pháp này vẫn sẽ không tạo ra một báo cáo mã hợp nhất.

Về cơ bản, tôi muốn một cái gì đó như thế này, nhưng thay vì chạy các bài kiểm tra, tôi muốn nó chạy các tệp phpunit.xml riêng lẻ trong mỗi mô-đun. Điều này có thể không?

<?xml version="1.0" encoding="UTF-8"?> 

<phpunit> 
    <testsuites> 
     <testsuite name="Site Tests"> 
      <directory>./module/Application/test/ApplicationTest</directory> 
      <directory>./module/User/test/UserTest</directory> 
     </testsuite> 
    </testsuites> 
</phpunit> 

Cập nhật

Mục đích là để có số liệu mã được tạo bởi PHPUnit đó đưa ra một cái nhìn tổng quan dự án, không phải là một cái nhìn tổng quan cụ thể mô-đun. Tôi đánh giá cao các kịch bản trong các câu trả lời sẽ chạy các bài kiểm tra đơn vị trên cơ sở mỗi mô-đun nhưng đây không phải là những gì tôi đang tìm kiếm. Tôi hiểu rằng điều này có thể là một hạn chế khi có liên quan đến PHPUnit. Tôi sẽ xem xét điều này trong vài ngày tới và cố gắng tìm một giải pháp vì nó có vẻ như có ích trong rất nhiều dự án xử lý các mô-đun tùy chỉnh.

Cập nhật 2

Robert Basic đã đưa ra một kịch bản tạo ra một cấu trúc thư mục với các báo cáo mô-đun bên trong và nó hoạt động tuyệt vời nhưng sẽ được tốt đẹp để có nó chạy trong vòng PHPUnit với báo cáo các số liệu thích hợp.

https://gist.github.com/robertbasic/5329789

+0

Tôi hỏi một [câu hỏi tương tự] (http://stackoverflow.com/questions/14755655/phpunit-bootstrap-in-phpstorm) một số thời gian trước đây, nhưng không có nhiều may mắn. Tôi đã không nhìn vào nó từ, nhưng những gì tôi nghĩ rằng tôi sẽ làm là sử dụng Phing cho việc này. Nếu IDE của bạn không hỗ trợ nó (ví dụ như PhpStorm), nó sẽ đơn giản như chạy 'phing test' hoặc tương tự từ dòng lệnh sau khi bạn đã thực hiện một mục tiêu' test'. Nó không phải là những gì bạn đang tìm kiếm, nhưng đó là một cách giải quyết đơn giản mà tôi có thể sẽ sử dụng bản thân mình. – Andy0708

+0

Nếu bạn muốn sử dụng kiến ​​thì có thể tìm thấy một giải pháp khác [ở đây] [1]. [1]: http://stackoverflow.com/questions/16628427/zend-framework-2-phpunit-multiple-modules-continuous-integration/24134625#24134625 –

Trả lời

1

Nếu bạn đang sử dụng Linux, bạn có thể tạo một tập lệnh đơn giản. Không chính xác giải pháp bạn muốn, nhưng có thể giúp không có giải pháp nào ít hơn:

#!/bin/sh 

modDir=$(pwd) 
for i in *; do 

    if [[ -d $i/test ]]; then 
     cd $i/test 
     phpunit 
     cd $modDir 
    fi 
done 

Bạn chỉ có thể thả tệp đó vào tệp runtests.sh trong thư mục mô-đun.

Chỉ cần một ý nghĩ :)

+0

Cảm ơn bạn đã trả lời, nhưng điều này sẽ không giúp ích cho những thứ như mã bảo hiểm vì nó sẽ tạo ra các tệp riêng biệt cho mỗi bộ thử nghiệm. –

1

trước Sau khi thảo luận này trên irc với những người khác nhau Tôi khá chắc chắn rằng bạn có thể không, bạn cần phải viết một kịch bản để lặp qua các mô-đun và chạy chúng trên một mô-đun theo từng module.

+0

Cảm ơn cho câu trả lời nhưng thấy bình luận trên về lý do tại sao tôi muốn tạo phạm vi và số liệu mã cho toàn bộ dự án. –

+0

Tôi hiểu ý của bạn là gì nhưng tôi không nghĩ rằng có thể, tôi có cùng một vấn đề trong công việc, chúng tôi tạo phạm vi mã cho mỗi mô-đun atm –

+0

Dường như giới hạn trong PHPUnit. Tôi sẽ xem xét chi tiết hơn trong vài ngày tới. Chúc mừng cho phản hồi. –

Các vấn đề liên quan