กรอบการทดสอบ WP-CLI
ลิงค์ด่วน: การใช้ | มีส่วนร่วม | สนับสนุน
หากต้องการใช้เฟรมเวิร์กการทดสอบ WP-CLI คุณต้องทำตามขั้นตอนต่อไปนี้จากภายในแพ็คเกจที่คุณต้องการเพิ่มลงใน:
เพิ่มกรอบการทดสอบเป็นข้อกำหนดการพัฒนา:
composer require --dev wp-cli/wp-cli-tests
เพิ่มสคริปต์ทดสอบที่จำเป็นลงในไฟล์ composer.json
:
"scripts" : {
"behat" : " run-behat-tests " ,
"behat-rerun" : " rerun-behat-tests " ,
"lint" : " run-linter-tests " ,
"phpcs" : " run-phpcs-tests " ,
"phpcbf" : " run-phpcbf-cleanup " ,
"phpunit" : " run-php-unit-tests " ,
"prepare-tests" : " install-package-tests " ,
"test" : [
" @lint " ,
" @phpcs " ,
" @phpunit " ,
" @behat "
]
}
แน่นอนคุณสามารถลบสิ่งที่คุณไม่ต้องการออกได้
คุณสามารถเลือกเพิ่มการหมดเวลาของกระบวนการที่แก้ไขแล้วลงในไฟล์ composer.json
เพื่อให้แน่ใจว่าสคริปต์จะทำงานได้จนกว่างานจะเสร็จสมบูรณ์:
"config" : {
"process-timeout" : 1800
},
การหมดเวลาจะแสดงเป็นวินาที
ทางเลือกเพิ่มไฟล์ behat.yml
ให้กับรูทแพ็กเกจที่มีเนื้อหาต่อไปนี้:
default :
suites :
default :
contexts :
- WP_CLITestsContextFeatureContext
paths :
- features
สิ่งนี้จะช่วยให้แน่ใจว่าระบบ Behat อัตโนมัติทำงานได้ในทุกแพลตฟอร์ม สิ่งนี้จำเป็นบน Windows
คุณสามารถเลือกเพิ่มไฟล์ phpcs.xml.dist
ไปยังรูทแพ็คเกจเพื่อเปิดใช้งานรูปแบบโค้ดและการตรวจสอบแนวทางปฏิบัติที่ดีที่สุดโดยใช้ PHP_CodeSniffer
ตัวอย่างของชุดกฎที่กำหนดเองขั้นต่ำตามค่าเริ่มต้นที่ตั้งไว้ในเฟรมเวิร์กการทดสอบ WP-CLI:
<? xml version = " 1.0 " ?>
< ruleset name = " WP-CLI-PROJECT-NAME " >
< description >Custom ruleset for WP-CLI PROJECT NAME</ description >
<!-- What to scan. -->
< file >.</ file >
<!-- Show progress. -->
< arg value = " p " />
<!-- Strip the filepaths down to the relevant bit. -->
< arg name = " basepath " value = " ./ " />
<!-- Check up to 8 files simultaneously. -->
< arg name = " parallel " value = " 8 " />
<!-- For help understanding the `testVersion` configuration setting:
https://github.com/PHPCompatibility/PHPCompatibility#sniffing-your-code-for-compatibility-with-specific-php-versions -->
< config name = " testVersion " value = " 5.4- " />
<!-- Rules: Include the base ruleset for WP-CLI projects. -->
< rule ref = " WP_CLI_CS " />
</ ruleset >
แน่นอนว่ามีตัวเลือกการกำหนดค่า PHPCS อื่นๆ ทั้งหมดให้เลือกใช้
อัปเดตการพึ่งพาผู้แต่งของคุณและสร้างตัวโหลดอัตโนมัติและโฟลเดอร์ไบนารีของคุณใหม่:
composer update
ตอนนี้คุณพร้อมที่จะใช้กรอบการทดสอบจากภายในแพ็คเกจของคุณแล้ว
คุณสามารถใช้คำสั่งต่อไปนี้เพื่อควบคุมการทดสอบ:
composer prepare-tests
- ตั้งค่าฐานข้อมูลที่จำเป็นสำหรับการรันการทดสอบการทำงาน สิ่งนี้จำเป็นเพียงครั้งเดียวเท่านั้นcomposer test
- เรียกใช้ชุดการทดสอบทั้งหมดcomposer lint
- รันเฉพาะชุดทดสอบ lintingcomposer phpcs
- รันเฉพาะชุดทดสอบโค้ดดมกลิ่นcomposer phpcbf
- รันเฉพาะการล้างโค้ดดมกลิ่นเท่านั้นcomposer phpunit
- รันเฉพาะชุดทดสอบหน่วยcomposer behat
- รันเฉพาะชุดทดสอบการทำงานหากต้องการส่งอาร์กิวเมนต์หนึ่งรายการขึ้นไปไปยังหนึ่งในเครื่องมือทดสอบ ให้ใส่เครื่องหมายขีดกลางคู่ไว้หน้าอาร์กิวเมนต์ ตามตัวอย่าง ต่อไปนี้เป็นวิธีรันการทดสอบฟังก์ชันสำหรับไฟล์ฟีเจอร์เฉพาะเท่านั้น:
composer behat -- features/cli-info.feature
จำเป็นต้องเติมเครื่องหมายขีดคู่ข้างหน้า เนื่องจากอาร์กิวเมนต์จะถูกส่งไปยัง Composer เอง ไม่ใช่เครื่องมือที่ Composer ดำเนินการ
คุณสามารถรันการทดสอบกับ WordPress เวอร์ชันใดเวอร์ชันหนึ่งได้โดยตั้งค่าตัวแปรสภาพแวดล้อม WP_VERSION
ตัวแปรนี้เข้าใจเวอร์ชันตัวเลข รวมถึงคำศัพท์พิเศษ latest
และ trunk
หมายเหตุ: สิ่งนี้ใช้ได้กับการทดสอบการทำงานของ Behat เท่านั้น การทดสอบอื่นๆ ทั้งหมดไม่เคยโหลด WordPress
ต่อไปนี้เป็นวิธีดำเนินการทดสอบกับ WordPress trunk เวอร์ชันล่าสุด:
WP_VERSION=trunk composer behat
คุณสามารถรันการทดสอบกับไบนารี WP-CLI เฉพาะได้ แทนที่จะใช้ไบนารีที่สร้างไว้ในโฟลเดอร์ vendor/bin
ของโปรเจ็กต์ของคุณ
สิ่งนี้มีประโยชน์ในการทำการทดสอบกับ WP_CLI เวอร์ชัน Phar ที่ระบุ
ในการดำเนินการนี้ คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อม WP_CLI_BIN_DIR
ให้ชี้ไปยังโฟลเดอร์ที่มีไบนารี wp
ที่ปฏิบัติการได้ หมายเหตุ: ไบนารีจะต้องตั้งชื่อ wp
เพื่อให้จดจำได้อย่างถูกต้อง
ตามตัวอย่าง ต่อไปนี้เป็นวิธีดำเนินการทดสอบกับเวอร์ชัน Phar ที่คุณดาวน์โหลด
# Prepare the binary you've downloaded into the ~/wp-cli folder first.
mv ~ /wp-cli/wp-cli-1.2.0.phar ~ /wp-cli/wp
chmod +x ~ /wp-cli/wp
WP_CLI_BIN_DIR= ~ /wp-cli composer behat
กฎพื้นฐานสำหรับการตั้งค่ากรอบการทดสอบด้วย Travis CI:
composer prepare-tests
หนึ่งครั้งต่อสภาพแวดล้อมlinting and sniffing
เป็นการวิเคราะห์แบบคงที่ ดังนั้นจึงไม่ควรขึ้นอยู่กับสภาพแวดล้อมที่เฉพาะเจาะจงใดๆ คุณควรทำสิ่งนี้เพียงครั้งเดียวโดยแยกเป็นขั้นตอน แทนที่จะทำต่อสภาพแวดล้อมcomposer behat || composer behat-rerun
ทำให้การทดสอบ Behat ทำงานทั้งหมดก่อน และในกรณีที่ล้มเหลว การทดสอบครั้งที่สองจะเสร็จสิ้นเฉพาะสถานการณ์ที่ล้มเหลวเท่านั้น ซึ่งมักจะแก้ไขปัญหาที่เกิดขึ้นเป็นระยะๆ เช่น การหมดเวลาหรือคล้ายกันต่อไปนี้เป็นการตั้งค่าพื้นฐานสำหรับวิธีกำหนดค่า Travis CI ให้ทำงานกับเฟรมเวิร์กการทดสอบ (แยกข้อมูล):
install :
- composer install
- composer prepare-tests
script :
- composer phpunit
- composer behat || composer behat-rerun
jobs :
include :
- stage : sniff
script :
- composer lint
- composer phpcs
env : BUILD=sniff
- stage : test
php : 7.2
env : WP_VERSION=latest
- stage : test
php : 7.2
env : WP_VERSION=3.7.11
- stage : test
php : 7.2
env : WP_VERSION=trunk
คุณสามารถชี้การทดสอบไปยังเวอร์ชันเฉพาะของ WP-CLI ผ่านทางค่าคงที่ WP_CLI_BIN_DIR
:
WP_CLI_BIN_DIR= ~ /my-custom-wp-cli/bin composer behat
หากคุณต้องการรันการทดสอบคุณสมบัติกับ WordPress เวอร์ชันใดเวอร์ชันหนึ่ง คุณสามารถใช้ค่าคงที่ WP_VERSION
ได้:
WP_VERSION=4.2 composer behat
ค่าคงที่ WP_VERSION
ยังเข้าใจ latest
และ trunk
ว่าเป็นเป้าหมายเวอร์ชันที่ถูกต้อง
ตามค่าดีฟอลต์ การทดสอบจะรันในฐานข้อมูลชื่อ wp_cli_test
โดยมีผู้ใช้ชื่อ wp_cli_test
ด้วยรหัสผ่าน รหัสผ่าน password1
ควรตั้งค่านี้ผ่านคำสั่ง composer prepare-tests
คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้เพื่อแทนที่ข้อมูลรับรองฐานข้อมูลเริ่มต้นได้
WP_CLI_TEST_DBHOST
เป็นโฮสต์ที่จะใช้และสามารถรวมพอร์ตได้ เช่น "127.0.0.1:33060" (ค่าเริ่มต้นเป็น "localhost")WP_CLI_TEST_DBROOTUSER
คือผู้ใช้ที่มีสิทธิ์ในการจัดการฐานข้อมูลและผู้ใช้ (ค่าเริ่มต้นคือ "root")WP_CLI_TEST_DBROOTPASS
คือรหัสผ่านที่จะใช้สำหรับผู้ใช้ข้างต้น (ค่าเริ่มต้นคือรหัสผ่านว่างเปล่า)WP_CLI_TEST_DBNAME
คือฐานข้อมูลที่ใช้การทดสอบ (ค่าเริ่มต้นคือ "wp_cli_test")WP_CLI_TEST_DBUSER
คือผู้ใช้ที่การทดสอบทำงานภายใต้ (ค่าเริ่มต้นคือ "wp_cli_test")WP_CLI_TEST_DBPASS
คือรหัสผ่านที่จะใช้สำหรับผู้ใช้ข้างต้น (ค่าเริ่มต้นคือ "password1")WP_CLI_TEST_DBTYPE
เป็นประเภทกลไกฐานข้อมูลที่จะใช้ เช่น "sqlite" สำหรับการรันการทดสอบบน SQLite แทนที่จะเป็น MySQL (ค่าเริ่มต้นเป็น "mysql") ตัวแปรสภาพแวดล้อมสามารถตั้งค่าสำหรับทั้งเซสชันผ่านไวยากรณ์ต่อไปนี้: export WP_CLI_TEST_DBNAME=custom_db
นอกจากนี้ยังสามารถตั้งค่าสำหรับการดำเนินการครั้งเดียวโดยนำหน้าคำสั่ง Behat: WP_CLI_TEST_DBNAME=custom_db composer behat
เราขอขอบคุณที่คุณริเริ่มเพื่อสนับสนุนโครงการนี้
การมีส่วนร่วมไม่ได้จำกัดอยู่เพียงแค่โค้ดเท่านั้น เราขอแนะนำให้คุณมีส่วนร่วมในวิธีที่เหมาะสมกับความสามารถของคุณมากที่สุด โดยการเขียนบทช่วยสอน สาธิตที่งานมีตติ้งในพื้นที่ของคุณ ช่วยเหลือผู้ใช้รายอื่นในการตอบคำถามสนับสนุน หรือแก้ไขเอกสารประกอบของเรา
หากต้องการคำแนะนำที่ละเอียดยิ่งขึ้น โปรดดูคำแนะนำในการมีส่วนร่วมของ WP-CLI แพ็คเกจนี้เป็นไปตามนโยบายและแนวปฏิบัติเหล่านั้น
คิดว่าคุณได้พบข้อบกพร่องหรือไม่? เราอยากให้คุณช่วยเราแก้ไขปัญหานี้
ก่อนที่คุณจะสร้างปัญหาใหม่ คุณควรค้นหาปัญหาที่มีอยู่เพื่อดูว่ามีวิธีแก้ไขที่มีอยู่หรือไม่ หรือได้รับการแก้ไขแล้วในเวอร์ชันที่ใหม่กว่าหรือไม่
เมื่อคุณค้นหาเสร็จแล้วและพบว่าไม่มีปัญหาที่เปิดอยู่หรือแก้ไขปัญหาแล้วสำหรับข้อบกพร่องของคุณ โปรดสร้างปัญหาใหม่ ใส่รายละเอียดให้มากที่สุด และล้างขั้นตอนในการทำซ้ำหากเป็นไปได้ หากต้องการคำแนะนำเพิ่มเติม โปรดดูเอกสารประกอบรายงานข้อบกพร่องของเรา
ต้องการมีส่วนร่วมในคุณลักษณะใหม่หรือไม่? โปรดเปิดประเด็นใหม่ก่อนเพื่อหารือว่าฟีเจอร์นี้เหมาะสมกับโปรเจ็กต์หรือไม่
เมื่อคุณตัดสินใจที่จะสละเวลาเพื่อดูคำขอดึงข้อมูลของคุณ โปรดปฏิบัติตามหลักเกณฑ์ของเราในการสร้างคำขอดึงข้อมูลเพื่อให้แน่ใจว่าเป็นประสบการณ์ที่น่าพึงพอใจ ดู "การตั้งค่า" สำหรับรายละเอียดเฉพาะเกี่ยวกับการทำงานกับแพ็คเกจนี้ในเครื่อง
ปัญหา GitHub ไม่ได้มีไว้สำหรับคำถามเกี่ยวกับการสนับสนุนทั่วไป แต่มีสถานที่อื่นๆ ที่คุณสามารถลองใช้ได้: https://wp-cli.org/#support