8

Tôi đang chạy phiên bản mới nhất của Codeception trên một nền tảng WAMP - chấp nhận của tôi là rất cơ bản tuy nhiên hoạt động tốt (xem dưới đây):Codeception - kiểm tra Chấp nhận làm việc nhưng chức năng kiểm tra không

$I = new WebGuy($scenario); 
$I->wantTo('Log in to the website'); 
$I->amOnPage('/auth/login'); 
$I->fillField('identity','[email protected]'); 
$I->fillField('password','password'); 
$I->click('Login'); 

Tóm lại - nó kiểm tra trang là 'auth/login' điền vào 2 trường biểu mẫu và nhấp vào nút đăng nhập. Điều này làm việc mà không có bất kỳ vấn đề.

Đây là giống hệt thử nghiệm chức năng của tôi:

$I = new TestGuy($scenario); 
$I->wantTo('perform actions and see result'); 
$I->amOnPage('/auth/login'); 
$I->fillField('identity','[email protected]'); 
$I->fillField('password','password'); 
$I->click('Login'); 

Khi tôi chạy từ dòng lệnh tôi nhận được lỗi sau (không phải là lỗi đầy đủ nhưng cũng đủ để hiểu được vấn đề):

1) Couldn't <-[35;1mperform actions and see result<- 
[0m in <-[37;1LoginCept.php<-[0m <-41;37mRuntimeException: 
Call to undefined method TestGuy::amOnPage<-[0m....... 

Bộ chấp nhận của tôi đã bật mô-đun 'PhpBrowser' & 'WebHelper', bộ chức năng có 'FileSystem' & 'TestHelper' được bật (trong tệp accept.suite.yml & functional.suite.yml)

Rõ ràng hàm amOnPage() là vấn đề - tuy nhiên tôi được cho là tin amOnPage() nên làm việc trong sự chấp nhận và thử nghiệm chức năng? Hoặc tôi là sai - cũng - ai đó có thể giải thích những con số có nghĩa là '< - [35; 1m' xuất hiện

CẬP NHẬT: Tôi đã thử thêm mô-đun 'WebHelper' vào functional.suite.yml nhưng tôi không xem amOnPage() được tạo tự động trong tệp TestGuy.php - bất kỳ ý tưởng nào không?

tập tin cấu hình của tôi là dưới đây:

WebGuy

class_name: WebGuy 
modules: 
enabled: 
    - PhpBrowser 
    - WebHelper 
config: 
    PhpBrowser: 
     url: 'http://v3.localhost/' 

TestGuy

class_name: TestGuy 
modules: 
enabled: [Filesystem, TestHelper, WebHelper] 

Trả lời

9

Vâng, đây là như vậy, vì TestGuy không có các phương pháp đó. Tất cả các phương thức đó đều nằm trong PhpBrowser, các mô-đun Selenium2 hoặc các phương thức khác được thừa hưởng từ việc thực thi Codeception Mink. Vì vậy, bạn cần phải thêm PhpBrowser trong bộ chức năng của bạn trong phần mô-đun, và sau đó chạy lệnh codecept build.

Cũng lưu ý rằng tốt hơn là sử dụng mô-đun Selenium2 để kiểm tra chấp nhận và PhpBrowser cho các thử nghiệm chức năng. Ý tưởng chính là các bài kiểm tra chấp nhận (Selenium2) phải bao gồm những phần của ứng dụng của bạn, mà không thể được bao phủ bởi các bài kiểm tra chức năng (PhpBrowser), ví dụ một số tương tác js.

+0

Cảm ơn @Elkan Tôi đã thêm 'PhpBrowser' để tập functional.suite.yml của tôi và chạy 'codecept xây dựng' lệnh và nhận được một "mô-đun PhpBrower không được cấu hình Mô-đun PhpBrowser không được cấu hình Hãy kiểm tra các trường bắt buộc Bất kỳ ý tưởng nào về những gì tôi làm ở đây? – Zabs

+0

Lưu ý .. Tôi đang sử dụng CodeIgniter .. và tôi đã phát hiện ra không có mô-đun cho điều này được nêu ra tại thời điểm này trong thời gian: ( – Zabs

+0

có, không có mô-đun cho CI có sẵn cho bây giờ, nhưng sử dụng sau đó PhpBrowser cho các bài kiểm tra chức năng, sự khác biệt tốc độ không phải là nhiều khi bạn sử dụng PhpBrowser (dựa trên curl) và module native framework (dựa trên symfony browser-kit).Quay lại lỗi, bạn cần cấu hình PhpBrowser, xem tài liệu mô-đun trên trang web giả mạo :) – Elkan

-1

Về '<-[35;1m' bắt đầu kịch bản codecept run --no-colors để loại bỏ '<-[35;1m' từ giao diện điều khiển đầu ra