2011-12-06 24 views
9

Cách tốt nhất để tôi kiểm tra trong PHPUnit liệu thử nghiệm của tôi có thành công hay thất bại không? Tôi đang cố chụp ảnh màn hình cho cửa sổ Selenium, nhưng chỉ khi thử nghiệm của tôi thất bại. Tôi đã thử chụp một ảnh chụp màn hình trong onNotSuccessfulTest, nhưng nếu tôi luôn đóng cửa sổ của tôi trong tearDown() (mà tôi nên làm), thì không có phiên nào để chụp ảnh màn hình với hàm onNotSuccessfulTest của tôi.Có cách nào để biết liệu có lỗi trong trường hợp kiểm tra PHPUnit của tôi từ tearDown() không?

Giải pháp mà tôi đang nghĩ đến bao gồm việc kiểm tra xem thử nghiệm thành công hay thất bại trong tearDown, xác định có chụp ảnh màn hình hay không.

Tôi đang sử dụng PHPUnit 3.6 và php-webdriver của Facebook, vì vậy theo như tôi biết, tôi không có biến captureScreenshotOnFailure.

Suy nghĩ?

Trả lời

11

Bạn có thể kiểm tra giá trị trả lại từ getStatus() và chụp ảnh màn hình trong điều kiện mong muốn của mình.

protected function tearDown() { 
    $status = $this->getStatus(); 
    if ($status == PHPUnit_Runner_BaseTestRunner::STATUS_ERROR 
      || $status == PHPUnit_Runner_BaseTestRunner::STATUS_FAILURE) { 
     // take a screenshot... 
    } 
} 

Xem runBare() cho vị trí đặt trạng thái dựa trên ngoại lệ được ném từ phương pháp thử nghiệm. Bạn có thể muốn chụp ảnh màn hình cho các bài kiểm tra bị bỏ qua.

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