Hướng dẫn phpunit exclude - phpunit loại trừ

Có một số cách để không chạy một bài kiểm tra cụ thể - đưa nó vào danh sách đen để nó không bao giờ chạy có thể không phải là cách - vì thay đổi nó có nghĩa là chỉnh sửa danh sách đen và bạn sẽ thường xuyên đưa nó vào và ra khỏi điều khiển phiên bản .

Có một số cách khác có thể phù hợp hơn:

Nếu một bài kiểm tra chưa sẵn sàng để chạy:

$this->markTestIncomplete['This test has not been implemented yet.'];

Nếu có một lý do bên ngoài, nó không nên chạy, hãy bỏ qua nó:

if [!extension_loaded['mysqli']] {
    $this->markTestSkipped['The MySQLi extension is not available.'];
}

Bạn cũng có thể đưa nó vào hàm

if [!extension_loaded['mysqli']] {
    $this->markTestSkipped['The MySQLi extension is not available.'];
}
0, vì vậy nó sẽ bỏ qua tất cả các bài kiểm tra trong một lớp kiểm tra.

Bạn có thể thực hiện một bài kiểm tra phụ thuộc vào một trước đó thành công:

public function testEmpty[]
{
    $stack = array[];
    $this->assertTrue[empty[$stack]];
    return $stack;   // also sends this variable to any following tests - if this worked
}
/**
 * only runs if testEmpty[] passed
 *
 * @depends testEmpty
 */
public function testPush[array $stack]
{
}

Chú thích @group -Name- là một trong những cách tốt nhất để dừng cụ thể hoặc chạy một nhóm thử nghiệm

/**
 * @group database
 * @group remoteTasks
 */
public function testSomething[]
{
}

if [!extension_loaded['mysqli']] {
    $this->markTestSkipped['The MySQLi extension is not available.'];
}
1 hiện có hai nhóm và nếu được thêm vào dòng lệnh [hoặc trong tham số config.xml]
if [!extension_loaded['mysqli']] {
    $this->markTestSkipped['The MySQLi extension is not available.'];
}
2. Nó sẽ không được chạy. Tương tự như vậy, bạn chỉ có thể chạy các bài kiểm tra thuộc về một nhóm cụ thể - nói được đặt tên theo tính năng hoặc báo cáo lỗi.

Tôi muốn loại trừ hoặc bao gồm một số bài kiểm tra nhất định từ các bộ việc kiểm tra. Tôi muốn có một số quyền kiểm soát điều này thông qua các chú thích/nhóm thay vì đặt tên các tệp hoặc thư mục cụ thể trong

if [!extension_loaded['mysqli']] {
    $this->markTestSkipped['The MySQLi extension is not available.'];
}
3

Tôi đã thử một cái gì đó như thế này, nhưng dường như nó đang bỏ qua

if [!extension_loaded['mysqli']] {
    $this->markTestSkipped['The MySQLi extension is not available.'];
}
4 và/hoặc
if [!extension_loaded['mysqli']] {
    $this->markTestSkipped['The MySQLi extension is not available.'];
}
5


    
        Unit
    
    
        Integration/
        
            first-round          
        
    
    
        Integration/
        
            first-round
        
    

Tôi không muốn chuyển các bài kiểm tra đến các thư mục khác nhau chỉ để phù hợp với điều này và tôi không muốn gọi phpunit nhiều lần từ CLI, tôi hy vọng tôi có thể đạt được kết quả mong muốn thông qua cấu hình XML.

Đã hỏi ngày 12 tháng 3 năm 2018 lúc 23:47Mar 12, 2018 at 23:47

Sam Anthonysam AnthonySam Anthony

1.5592 Huy hiệu vàng20 Huy hiệu bạc39 Huy hiệu Đồng2 gold badges20 silver badges39 bronze badges

3

Ok, nhìn vào các tài liệu nên là nơi đầu tiên bạn nhìn

//phpunit.de/manual/current/en/appendixes.configuration.html

Bạn cần một phần tử

if [!extension_loaded['mysqli']] {
    $this->markTestSkipped['The MySQLi extension is not available.'];
}
6 với
if [!extension_loaded['mysqli']] {
    $this->markTestSkipped['The MySQLi extension is not available.'];
}
7 bên trong nó. Vậy bạn có ở đâu


     first-round

Bạn nên có


    
        first-round
   

Nó không thực sự nói nếu nó nên đi vào bên trong

if [!extension_loaded['mysqli']] {
    $this->markTestSkipped['The MySQLi extension is not available.'];
}
8 và tôi không bao giờ sử dụng nó nhưng tôi chắc chắn nếu bạn nhìn vào tài liệu bạn nên tìm một số ví dụ.

Đã trả lời ngày 13 tháng 3 năm 2018 lúc 0:02Mar 13, 2018 at 0:02

ArtisticphoenixartisticphoenixArtisticPhoenix

21.1k2 Huy hiệu vàng21 Huy hiệu bạc35 Huy hiệu Đồng2 gold badges21 silver badges35 bronze badges

3

Trong trường hợp của tôi, tôi đã nhóm là

if [!extension_loaded['mysqli']] {
    $this->markTestSkipped['The MySQLi extension is not available.'];
}
9


Bài Viết Liên Quan

Chủ Đề