2011-06-22 26 views
6

Tôi đã tạo các tiêu chuẩn quy tắc mã hóa riêng của mình. Chúng đang hoạt động tốt. Bây giờ tôi muốn kiểm tra các quy tắc mã hóa bằng cách sử dụng PHP UnitTest. PhpCodesniffer đã có khuôn khổ của họ cho trường hợp kiểm thử PHPUnit.Cách tạo trường hợp PHP-UnitTest cho các tiêu chuẩn PHP_Codesniffer? `

Vì vậy, việc sử dụng tôi đã mở rộng AbstractSniffUnitTest và lớp kiểm tra đơn vị của mình tại vị trí Standards/TestRules/Tests/Function/FunctionUnitTest.php và tập lệnh được kiểm tra được giữ trong Standards/TestRules/Tests/Function/FunctionUnitTest.inc.

Nhưng khi tôi định chạy tập lệnh theo lệnh phpunit PEAR\PHP\tests\AllTests.php, nó sẽ báo lỗi sau.

PHPUnit 3.5.14 by Sebastian Bergmann. 

......................................F 

Time: 6 seconds, Memory: 10.00Mb 

There was 1 failure: 

1) TestRules_Tests_Function_FunctionUnitTest::getErrorList 
An unexpected exception has been caught: Source file C:/Program Files/PHP/PEAR/PHP/CodeSniffer/Standards/TestRules/Tests/Function/FunctionUnitTest.inc does not exist 

C:\Program Files\PHP\PEAR\PHP\tests\Standards\AbstractSniffUnitTest.php:138 
C:\Program Files\PHP\PEAR\PHP\tests\TestSuite.php:48 

FAILURES! 
Tests: 39, Assertions: 146, Failures: 1. 

Warning: Deprecated PHPUnit features are being used 2 times! 
Use --verbose for more information. 

Nó cung cấp tệp lỗi FunctionUnitTest.inc không tìm thấy tại vị trí đã cho. Tôi đã cho phép đầy đủ thư mục cũng xác minh đường dẫn và vị trí tệp, nhưng nó cho cùng một lỗi. Tôi đã thử nghiệm nó trên máy linux cũng có, nhưng nó cho cùng một lỗi.

Đây có phải là vấn đề về mã của tôi hoặc vấn đề khung không hợp lệ mã hóa không?

+0

Vui lòng thử công tắc '--verbose' và thêm đầu ra mở rộng. – hakre

Trả lời

1

Tôi thấy một không gian gần ii nc - đảm bảo nếu đó là lỗi chính tả và sửa lỗi, nó sẽ hoạt động. Khác hơn này tôi không thấy bất kỳ vấn đề.

Thay đổi:

C:/Program Files/PHP/PEAR/PHP/CodeSniffer/Tiêu chuẩn/TestRules/thử nghiệm/Chức năng/FunctionUnitTest.i nc

Để

C:/Program Files/PHP/PEAR/PHP/CodeSniffer/Tiêu chuẩn/TestRules/Kiểm tra/Chức năng/FunctionUnitTest.inc

+0

Tôi đã định dạng lại câu hỏi cho người đăng và không có khoảng trống trong 'inc'. Đó là một dòng kết thúc rằng trình duyệt biến thành một không gian. Tôi nghi ngờ nó đã được gây ra bằng cách chọn văn bản trong giao diện điều khiển. –

+0

@ David Tôi hy vọng như vậy, nhưng tôi tự hỏi điều gì có thể gây ra vấn đề này, vì cả hai tệp đều ở cùng một vị trí & 'TestRules/Tests/Function/FunctionUnitTest.php' là nhận được xử lý nếu đó là trường hợp, sau đó nó nên chọn lên các tập tin 'TestRules/Kiểm tra/Chức năng/FunctionUnitTest.inc'. –

+0

Cảm ơn tất cả các bạn đã góp ý. Vị trí tệp thực tế là C:/Tệp chương trình/PHP/PEAR/PHP/CodeSniffer/Tiêu chuẩn/TestRules/Kiểm tra/Chức năng/FunctionUnitTest.inc Tôi cũng tự hỏi tại sao vấn đề này xảy ra khi thư mục có quyền đọc/ghi đầy đủ . – Gaurav

1

Tệp của bạn có nằm trong thư mục tests hoặc CodeSniffer cao nhất không? Lưu ý rằng các trường hợp thử nghiệm trừu tượng bạn đang mở rộng là trong tests

C:\Program Files\PHP\PEAR\PHP\tests\Standards\AbstractSniffUnitTest.php 

nhưng đang cố gắng để bao gồm các tập tin từ CodeSniffer:

C:/Program Files/PHP/PEAR/PHP/CodeSniffer/Standards/TestRules/Tests/Function/FunctionUnitTest.inc 

Hãy thử di chuyển hai tập tin của bạn vào thư mục khác.

+0

mục Cấu trúc như sau -Codesniffer --Standard --- TestRules ---- Sniff/Chức năng/FunctionSniff.php ---- Các xét nghiệm/Chức năng/FunctionUnitTest.php /-FunctionUnitTest.inc - kiểm tra - Tiêu chuẩn /AbstarctSniffUnitTest.php /AllSniffs.php Có lo lắng gì về cấu trúc thư mục không? Tôi đã tuân theo quy ước tương tự như PHP-Codesniffer UnitTest. Bất kỳ con trỏ? – Gaurav

+0

Nếu bạn theo khuôn mẫu được đưa ra bởi các bài kiểm tra của CodeSniffer, tôi hy vọng nó sẽ hoạt động. Tôi sẽ bắt đầu bằng cách mở lớp đang cố gắng bao gồm tệp của bạn và xem nơi tệp mong muốn tệp. Thời gian để cuộn lên tay áo của bạn và có được bàn tay của bạn bẩn. :) –

0

Dường như nó có vấn đề về đường dẫn trên cửa sổ. Tôi đã thử nghiệm các trường hợp thử nghiệm trên Linux, nó hoạt động tốt. Khi tôi kiểm tra mã thực tế, có vẻ như trên đó có ánh xạ tập tin từ tập tin thử nghiệm để sniff tập tin. Nhưng trên cửa sổ, sau khi tệp được ánh xạ, đường dẫn tệp chứa sự trộn lẫn của chuyển tiếp & slahes lạc hậu.Nhưng mã sẽ không cho phép điều này. Do đó, nó sẽ trả về “lỗi không tìm thấy”. Các trường hợp thử nghiệm đang thực thi tốt trên Linux.

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