2016-05-05 20 views
5

Vì vậy, tôi đang viết một gói Laravel cơ bản và dường như tôi đã vấp phải một vấn đề khác, lần này với thử nghiệm.Thử nghiệm một gói Laravel

Gói đang phát triển hiện nằm trong thư mục packages trong thư mục gốc của dự án. Tôi đã sửa đổi các tập tin composer.json của gói để bao gồm các phụ thuộc tôi cần

"require-dev": { 
    "phpunit/phpunit": "~4.0", 
    "laravel/laravel": "dev-develop" 
} 

Tuy nhiên, bất cứ khi nào tôi cố gắng chạy phpunit tests trong thư mục gói (trong đó có một thư mục có tên tests cùng với một bài kiểm tra mẫu), tôi nhận được lỗi sau:

PHP Fatal error: class 'Illuminate \ Quỹ \ Testing \ TestCase' không tìm thấy trong /workspace/laravel/packages/sample/http-request/tests/HttpRequestTest.php trên dòng 8

Các tệp thử nghiệm chỉ là bản khai được tạo tự động:

<?php 

use Illuminate\Foundation\Testing\WithoutMiddleware; 
use Illuminate\Foundation\Testing\DatabaseMigrations; 
use Illuminate\Foundation\Testing\DatabaseTransactions; 

class HttpRequestTest extends Illuminate\Foundation\Testing\TestCase 
{ 
    /** 
    * A basic test example. 
    * 
    * @return void 
    */ 
    public function testExample() 
    { 
     $this->assertTrue(true); 
    } 
} 

Bất kỳ ý tưởng nào tại sao tính năng này không hoạt động? Các thử nghiệm ứng dụng chạy mà không gặp trục trặc, nhưng bản thân ứng dụng không có phụ thuộc khác với những gì trong hộp.

SOLUTION

Managed để làm cho nó làm việc một cách độc lập bằng cách mở rộng PHPUnit_Framework_TestCase:

class HttpRequestTest extends PHPUnit_Framework_TestCase 

Tuy nhiên, chạy nó thích:

vendor/bin/phpunit packages/yourname/package-name/ 

Làm việc là tốt, vì vậy tôi nhặt nó như một câu trả lời.

+0

Cảm ơn bạn đã muốn thêm giải pháp tại đây. Trong tương lai, vui lòng thêm câu trả lời đó dưới dạng câu hỏi bên dưới câu hỏi - chúng tôi muốn tách biệt giữa Hỏi và đáp tại đây. Chúc mừng! – halfer

Trả lời

5

này làm việc cho tôi:

class HttpRequestTest extends TestCase 

Và chạy thử nghiệm với:

vendor/bin/phpunit packages/yourname/package-name/ 
+0

Không, vẫn không tìm thấy bất cứ điều gì: (Một lần nữa, nó nằm trong một gói/... thư mục, mà lần lượt có thư mục nhà cung cấp riêng với phụ thuộc dev, không phải trong thư mục gốc của ứng dụng, nơi nó hoạt động cho tôi – overburn

+1

Tôi đã cập nhật bài đăng, tôi đang chạy các bài kiểm tra gói như thế này và nó hoạt động –

+1

Tuyệt vời. Nó hoạt động Tuy nhiên nó sử dụng các phụ thuộc của ứng dụng, điều này sẽ không khả thi với TravisCI. Tôi chỉ sử dụng TestCase kèm theo PHPUnit. – overburn

1

(văn thay mặt cho OP như một câu trả lời).

Managed để làm cho nó làm việc một cách độc lập bằng cách mở rộng PHPUnit_Framework_TestCase:

class HttpRequestTest extends PHPUnit_Framework_TestCase 

Tuy nhiên, chạy nó thích:

vendor/bin/phpunit packages/yourname/package-name/ 

Làm việc là tốt, vì vậy tôi chọn nó như là một câu trả lời.

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