Đây là khá nhiều câu hỏi cùng một lúc, nhưng tôi có thể trả lời ít nhất một số:
- Có bất kỳ lý do tại sao M2 sử dụng libs thử nghiệm (PHPUnit và PHP_CS) từ năm 2014 thay vì mới không?
Sự phát triển lớn trong Magento 2 bắt đầu vào khoảng năm 2014, vì vậy họ đã sử dụng các công cụ có sẵn tại thời điểm đó. Khi PHPUnit 5 xuất hiện, đã có một số lượng lớn các thử nghiệm không tương thích với phiên bản mới (xem ví dụ về chủ đề diễn đàn này ), vì vậy có thể hiểu rằng họ đã hoãn cập nhật.
Tôi giả sử, lý do để gắn bó với phiên bản PHP_CS cũ là tương tự nhau, mặc dù tôi không có ví dụ cụ thể ở đây.
- Có phải bình thường đầu ra của bài kiểm tra này trông giống như một mớ hỗn độn và thật khó để hiểu điều gì và ở đâu xảy ra sự cố? Tôi so sánh nó với đầu ra của các bài kiểm tra chất lượng mã cho CSS / JS và đó là cơn ác mộng. Có phóng viên nào tốt hơn có sẵn hoặc cách khác để có được báo cáo có ý nghĩa, thay vì một cái gì đó trông giống như một nền tảng PHP?
Các IDE như PHPStorm có khả năng tích hợp tốt với các công cụ này, nơi bạn có thể thấy các kết quả sniffer mã trực tiếp trong các tệp nguồn và cũng có được một GUI đẹp xung quanh các bài kiểm tra PHPUnit.
Bên cạnh đó, PHPUnit có nhiều tùy chọn đầu ra khác nhau. Ví dụ với --testdox
đối số, bạn sẽ nhận được một danh sách kiểm tra có thể đọc được của con người về các bài kiểm tra đã qua và thất bại. Nó cung cấp ít thông tin hơn nhưng tổng quan dễ đọc. Bạn cũng có thể lấy nó ở định dạng HTML với --testdox-html=OUTPUTFILE
. Tương tự như vậy, bạn có thể nhận được báo cáo bảo hiểm mã trong HTML với --coverage-html OUTPUTDIR
.
Nhưng các định dạng đầu ra hữu ích hơn là các định dạng XML và JSON có thể được đọc bởi các ứng dụng khác như máy chủ VisualPHPUnit hoặc CI.
Các tham số PHPUnit để tạo báo cáo:
Code Coverage Options:
--coverage-clover <file> Generate code coverage report in Clover XML format.
--coverage-crap4j <file> Generate code coverage report in Crap4J XML format.
--coverage-html <dir> Generate code coverage report in HTML format.
--coverage-php <file> Export PHP_CodeCoverage object to file.
--coverage-text=<file> Generate code coverage report in text format.
Default: Standard output.
--coverage-xml <dir> Generate code coverage report in PHPUnit XML format.
Logging Options:
--log-junit <file> Log test execution in JUnit XML format to file.
--log-tap <file> Log test execution in TAP format to file.
--log-json <file> Log test execution in JSON format.
--testdox-html <file> Write agile documentation in HTML format to file.
--testdox-text <file> Write agile documentation in Text format to file.
Thông tin thêm: https://phastait.de/manual/civerse/en/textui.html
Các tham số PHP_CS để tạo báo cáo
PHP_CS cũng có các định dạng báo cáo khác nhau:
--report=xml PHP_CS XML format
--report=checkstyle Checkstyle XML format
--report=csv CSV
(các định dạng khác: emacs, svnblame, gitblame)
Thông tin thêm: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Báo cáo
- Có bất kỳ lý do tại sao nó rất chậm? Phải mất ~ 7-8 phút để phân tích các tệp mẫu. Hầu hết các bài kiểm tra front-end trong trường hợp xấu nhất mất vài giây, vì vậy không có cách nào để nhận phản hồi trực tiếp về các vấn đề.
Tôi không thể biết lý do nào khiến PHP_CS mất 8 phút chỉ cho các tệp mẫu, nhưng người theo dõi của bạn chỉ có thể kiểm tra các tệp đã thay đổi. Việc tích hợp PHPStorm thực hiện điều này khá tốt.
- Làm cách nào để chạy loại thử nghiệm này khi chúng tôi có mô-đun đơn (ví dụ: chủ đề), không phải toàn bộ phiên bản Magento 2 (thử nghiệm CI)?
Đơn giản chỉ cần chạy phpcs /path/to/theme
để chỉ kiểm tra các tập tin trong thư mục này.
- Có vẻ như PHP_CS đã có một trình bao bọc đơn giản cho Gulp, nhưng tôi không chắc nơi cấu hình được lưu trữ. Đó là trong tập tin /.php_cs?
Nó không giống như trình bao bọc này bao gồm một trình xem tập tin, vì vậy tôi không thấy lợi ích.
Các .php_cs
định nghĩa tập các tập tin để kiểm tra và có tiêu chuẩn mã hóa để sử dụng. Đây là tệp cấu hình PHP_CS và độc lập với trình bao bọc gulp.