2014-09-02 15 views
5

Ngay bây giờ khi tôi thiết lập một thử nghiệm mới cho các ứng dụng Laravel của tôi, nó kéo dài từ cơ sở TestCase lớpLaravel 4.2: Test Case tự động load

class SomeTest extends TestCase 
{ 
} 

Tôi muốn tạo ra một lớp kiểm tra cơ sở mới có tên AnotherTestCase, vì vậy tôi có thể tạo ra các trường hợp thử nghiệm phương pháp thiết lập share/teardown/helper/etc ...

class SomeTest extends AnotherTestCase 
{ 
} 

Tuy nhiên, khi tôi chạy

phpunit app/tests/SomeTest.php 

tôi nhận được lỗi sau

PHP Fatal error: Class 'AnotherTestCase' not found in /[...]/app/tests/SomeTest.php on line 3 

Đây là mặc dù thực tế tôi có một lớp học quy định tại

#File: app/tests/AnotherTestCase.php 
<?php 
class AnotherTestCase extends TestCase 
{ 
} 

Đây là khó hiểu, vì phpunit dường như để tự động nạp lớp TestCase.

Tôi có cần yêu cầu thủ công trong các lớp kiểm tra cơ sở tùy chỉnh không, hoặc có cách nào để nói cho phpunit về lớp kiểm tra cơ sở mới của tôi không? Nói cách khác, tại sao phpunit tự động tải TestCase, nhưng không tự động tải AnotherTestCase

Trả lời

7

Bạn có thể khắc phục lỗi này bằng cách bổ sung này để composer.json của bạn:

"autoload": { 
    "classmap": [ 
     "app/commands", 
     "app/controllers", 
     "app/models", 
     "app/filters", 
     "app/database/migrations", 
     "app/database/seeds", 
     "app/tests/TestCase.php", 
     "app/tests/AnotherTestCase.php" // <-- Add Me 
    ], 
// ... 

Sau đó hãy chắc chắn bạn làm một composer dump-autoload. Tôi vừa thử nghiệm điều này bằng cách thêm lớp sau:

class AnotherTestCase extends TestCase {} 

Và thay đổi một trong các bài kiểm tra hiện tại của tôi để sử dụng làm phụ huynh thay thế. Tôi tin rằng mục nhập trong composer.json là cách bạn có thể tải TestCase.

+0

Ah, cảm ơn! Đối với các độc giả trong tương lai, trong trường hợp nó không rõ ràng từ câu hỏi, Laravel sẽ gửi các ứng dụng/tests/TestCase.php trong tệp composer.json của nó. Đó là những gì autoloads trường hợp thử nghiệm thứ hai. –

+0

không sao cả. vui vì tôi có thể trả ơn cho tất cả những câu hỏi Magento của tôi :) –

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