ນີ້ແມ່ນຄໍາສັ່ງ cmdtest ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
cmdtest - ການທົດສອບ blackbox ຂອງເຄື່ອງມືບັນທັດຄໍາສັ່ງ Unix
ສະຫຼຸບສັງລວມ
cmdtest [-cຄໍາສັ່ງ] [-- ຄໍາສັ່ງ=ຄໍາສັ່ງ] [--config=ເອກະສານ] [--dump-config]
[--dump-setting-names] [--generate-manpage=ຕົວຢ່າງ] [-h] [- ຊ່ວຍ] [--help-ທັງໝົດ]
[--list-config-files] [- ການປ່ຽນແປງ] [--no-default-config] [--dump-memory-profile=ວິທີການ]
[-k] [--ຮັກສາ] [--ບໍ່ຮັກສາ] [--ບັນທຶກ=ເອກະສານ] [--log-ຮັກສາ=N] [--log-level=LEVEL] [--log-max=ຫລືຂະຫຍາຍໂຕ]
[--log-mode=MODE] [--memory-dump-interval=ວິນາທີ] [-- ຜົນຜະລິດ=ເອກະສານ] [-tTEST] [--ທົດສອບ=TEST]
[--ເວລາ] [-- ບໍ່ມີເວລາ] [ເອກະສານ] ...
ລາຍລະອຽດ
cmdtest ກ່ອງດຳທົດສອບເຄື່ອງມືບັນທັດຄໍາສັ່ງ Unix. ໂດຍໃຫ້ສະຄຣິບທົດສອບບາງອັນ, ວັດສະດຸປ້ອນຂອງເຂົາເຈົ້າ,
ແລະຜົນໄດ້ຮັບທີ່ຄາດວ່າຈະ, ມັນກວດສອບວ່າເສັ້ນຄໍາສັ່ງຜະລິດຜົນຜະລິດທີ່ຄາດໄວ້. ຖ້າ
ບໍ່, ມັນລາຍງານບັນຫາ, ແລະສະແດງໃຫ້ເຫັນຄວາມແຕກຕ່າງ.
ແຕ່ລະກໍລະນີທົດສອບ ຟູ ປະກອບດ້ວຍໄຟລ໌ດັ່ງຕໍ່ໄປນີ້:
foo.script
ສະຄຣິບເພື່ອແລ່ນການທົດສອບ (ອັນນີ້ແມ່ນຕ້ອງການ)
foo.stdin
ໄຟລ໌ທີ່ປ້ອນເຂົ້າມາດຕະຖານ
foo.stdout
ຜົນຜະລິດທີ່ຄາດວ່າຈະເປັນຜົນຜະລິດມາດຕະຖານ
foo.stderr
ຜົນຜະລິດທີ່ຄາດໄວ້ກັບຄວາມຜິດພາດມາດຕະຖານ
foo.ອອກ
ລະຫັດອອກທີ່ຄາດໄວ້
foo.setup
shell script ທີ່ຈະແລ່ນກ່ອນການທົດສອບ
foo.teardown
shell script ທີ່ຈະດໍາເນີນການຫຼັງຈາກການທົດສອບ
ປົກກະຕິແລ້ວ, ການທົດສອບຄັ້ງດຽວແມ່ນບໍ່ພຽງພໍ. ການທົດສອບທັງຫມົດແມ່ນເອົາເຂົ້າໄປໃນໄດເລກະທໍລີດຽວກັນ, ແລະພວກເຂົາ
ອາດຈະແບ່ງປັນບາງລະຫັດການຕັ້ງຄ່າ ແລະ teardown:
ຕັ້ງຄ່າຄັ້ງດຽວ
shell script ເພື່ອແລ່ນຄັ້ງດຽວ, ກ່ອນການທົດສອບໃດໆ
ຕັ້ງຄ່າ shell script ທີ່ຈະແລ່ນກ່ອນການທົດສອບແຕ່ລະຄັ້ງ
ນໍາ້ຕາໄຫຼ
shell script ທີ່ຈະດໍາເນີນການຫຼັງຈາກແຕ່ລະການທົດສອບ
teardown-ຫນຶ່ງຄັ້ງ
shell script ເພື່ອແລ່ນຄັ້ງດຽວ, ຫຼັງຈາກການທົດສອບທັງຫມົດ
cmdtest ແມ່ນໃຫ້ຊື່ຂອງໄດເລກະທໍລີທີ່ມີການທົດສອບທັງຫມົດ, ຫຼືຫຼາຍໆຢ່າງ
ໄດເລກະທໍລີ, ແລະມັນເຮັດດັ່ງຕໍ່ໄປນີ້:
·ປະຕິບັດ ຕັ້ງຄ່າຄັ້ງດຽວ
·ສໍາລັບແຕ່ລະກໍລະນີທົດສອບ (ຄໍານໍາຫນ້າທີ່ເປັນເອກະລັກ ຟູ):
- ປະຕິບັດ ຕັ້ງຄ່າ
- ປະຕິບັດ foo.setup
— ປະຕິບັດຄໍາສັ່ງ, ໂດຍການແລ່ນ foo.script, ແລະປ່ຽນເສັ້ນທາງການປ້ອນຂໍ້ມູນມາດຕະຖານໄປຫາ
ມາຈາກ foo.stdin, ແລະການຈັບເອົາຜົນຜະລິດມາດຕະຖານແລະຄວາມຜິດພາດແລະລະຫັດອອກ
- ປະຕິບັດ foo.teardown
- ປະຕິບັດ ນໍາ້ຕາໄຫຼ
— ລາຍງານຜົນຂອງການທົດສອບ: ບໍ່ກົງກັນລະຫັດອອກ foo.ອອກ, ກົງກັນຜົນຜະລິດມາດຕະຖານ
foo.stdout, ແລະຄວາມຜິດພາດມາດຕະຖານກົງກັນ foo.stderr?
·ປະຕິບັດ teardown-ຫນຶ່ງຄັ້ງ
ຍົກເວັນສໍາລັບ foo.script, ໄຟລ໌ທັງຫມົດເຫຼົ່ານີ້ແມ່ນທາງເລືອກ. ຖ້າຫາກວ່າການຕັ້ງຄ່າຫຼືຕົວອັກສອນ teardown ແມ່ນ
ຂາດ, ມັນພຽງແຕ່ບໍ່ໄດ້ປະຕິບັດ. ຖ້າຫາກວ່າຫນຶ່ງຂອງມາດຕະຖານ input, output, ຫຼືຄວາມຜິດພາດໄຟລ໌
ຫາຍໄປ, ມັນຖືກປະຕິບັດຄືກັບວ່າມັນຫວ່າງເປົ່າ. ຖ້າໄຟລ໌ລະຫັດອອກຂາດຫາຍໄປ, ມັນແມ່ນ
ຖືກປະຕິບັດຄືກັບວ່າມັນລະບຸລະຫັດອອກຂອງສູນ.
Shell scripts ອາດຈະໃຊ້ຕົວແປສະພາບແວດລ້ອມຕໍ່ໄປນີ້:
DATADIR
ໄດເລກະທໍລີຊົ່ວຄາວທີ່ໄຟລ໌ອາດຈະຖືກສ້າງຂື້ນໂດຍການທົດສອບ
TESTNAME
ຊື່ຂອງການທົດສອບປະຈຸບັນ (ຈະຫວ່າງເປົ່າສໍາລັບ ຕັ້ງຄ່າຄັ້ງດຽວ ແລະ teardown-ຫນຶ່ງຄັ້ງ)
SRCDIR ໄດເລກະທໍລີຈາກນັ້ນ cmdtest ໄດ້ຖືກເປີດຕົວ
OPTIONS
-c, -- ຄໍາສັ່ງ=ຄໍາສັ່ງ
ຖືກລະເລີຍສຳລັບຄວາມເຂົ້າກັນໄດ້ກັບຫຼັງ
--generate-manpage=ຕົວຢ່າງ
ສະກັດກັ້ນ
-h, - ຊ່ວຍ
ສະແດງຂໍ້ຄວາມຊ່ວຍເຫຼືອນີ້ ແລະອອກ
-k, --ຮັກສາ
ຮັກສາຂໍ້ມູນຊົ່ວຄາວກ່ຽວກັບຄວາມລົ້ມເຫລວ
--ບໍ່ຮັກສາ
ກົງກັນຂ້າມກັບ --keep
-- ຜົນຜະລິດ=ເອກະສານ
ຂຽນຜົນໄດ້ຮັບໃສ່ FILE, ແທນທີ່ຈະເປັນຜົນຜະລິດມາດຕະຖານ
-t, --ທົດສອບ=TEST
ແລ່ນພຽງແຕ່ TEST (ສາມາດໃຫ້ໄດ້ຫຼາຍຄັ້ງ)
--ເວລາ
ລາຍງານໄລຍະເວລາການທົດສອບແຕ່ລະຄັ້ງ
-- ບໍ່ມີເວລາ
ກົງກັນຂ້າມຂອງ --times
- ການປ່ຽນແປງ
ສະແດງຕົວເລກສະບັບຂອງໂຄງການແລະອອກ
ການຕັ້ງຄ່າ ໄຟ ແລະ ການຕັ້ງຄ່າ
--config=ເອກະສານ
ເພີ່ມ FILE ໃສ່ໄຟລ໌ config
--dump-config
ຂຽນອອກການຕັ້ງຄ່າປະຈຸບັນທັງຫມົດ
--dump-setting-names
ສະກັດກັ້ນ
--help-ທັງໝົດ
ສະແດງຕົວເລືອກທັງໝົດ
--list-config-files
ສະກັດກັ້ນ
--no-default-config
ລ້າງບັນຊີລາຍຊື່ຂອງໄຟລ໌ການຕັ້ງຄ່າທີ່ຈະອ່ານ
ການຕັດໄມ້ທ່ອນ
--ບັນທຶກ=ເອກະສານ
ຂຽນບັນທຶກຂໍ້ມູນໃສ່ FILE (ຄ່າເລີ່ມຕົ້ນແມ່ນບໍ່ໃຫ້ຂຽນບັນທຶກໄຟລ໌ທັງຫມົດ); ໃຊ້ "syslog"
ເພື່ອເຂົ້າສູ່ລະບົບບັນທຶກລະບົບ, "stderr" ເພື່ອບັນທຶກການສົ່ງອອກຄວາມຜິດພາດມາດຕະຖານ, ຫຼື "ບໍ່ມີ" ກັບ
ປິດການນຳໃຊ້ການບັນທຶກ
--log-ຮັກສາ=N
ຮັກສາ N ບັນທຶກສຸດທ້າຍ (10)
--log-level=LEVEL
ເຂົ້າສູ່ລະບົບທີ່ LEVEL, ຫນຶ່ງໃນ debug, ຂໍ້ມູນ, ການເຕືອນໄພ, ຄວາມຜິດພາດ, ວິຈານ, ຕາຍ (ຄ່າເລີ່ມຕົ້ນ: debug)
--log-max=ຫລືຂະຫຍາຍໂຕ
ໝຸນບັນທຶກທີ່ໃຫຍ່ກວ່າ SIZE, ເປັນສູນສຳລັບບໍ່ເຄີຍ (ຄ່າເລີ່ມຕົ້ນ: 0)
--log-mode=MODE
ຕັ້ງການອະນຸຍາດຂອງໄຟລ໌ບັນທຶກໃຫມ່ເປັນ MODE (octal; default 0600)
ຄວາມສອດຄ່ອງ
--dump-memory-profile=ວິທີການ
ເຮັດໃຫ້ການຖິ້ມຂໍ້ມູນການເກັບຂໍ້ມູນຄວາມຊົງຈໍາໂດຍໃຊ້ METHOD, ເຊິ່ງເປັນຫນຶ່ງໃນ: none, simple, ຫຼື meliae
(ຄ່າເລີ່ມຕົ້ນ: ງ່າຍດາຍ)
--memory-dump-interval=ວິນາທີ
ເຮັດໃຫ້ການສ້າງໂປຣໄຟລຄວາມຊົງຈໍາ dumps ຢ່າງຫນ້ອຍ SECONDS ຫ່າງກັນ
EXAMPLE
ເພື່ອທົດສອບວ່າ echo(1) ຄໍາສັ່ງ outputs ຊ່ອຍແນ່ຄາດວ່າຈະ, ສ້າງໄຟລ໌ທີ່ເອີ້ນວ່າ ສຽງສະທ້ອນ-
tests/hello.script ປະກອບມີເນື້ອໃນດັ່ງຕໍ່ໄປນີ້:
#!/ ຖັງ / sh
echo ສະບາຍດີ, ໂລກ
ສ້າງໄຟລ໌ເຊັ່ນກັນ echo-tests/hello.stdout ບັນຈຸ:
ສະບາຍດີຊາວໂລກ
ຫຼັງຈາກນັ້ນ, ທ່ານສາມາດດໍາເນີນການທົດສອບ:
$ cmdtest echo-tests
ການທົດສອບ 1/1
1/1 ການທົດສອບ OK, 0 ຄວາມລົ້ມເຫຼວ
ຖ້າທ່ານປ່ຽນໄຟລ໌ stdout ເປັນອັນອື່ນ, cmdtest ຈະລາຍງານຄວາມແຕກຕ່າງ:
$ cmdtest echo-tests
FAIL: ສະບາຍດີ: stdout diff:
--- echo-tests/hello.stdout 2011-09-11 19:14:47 +0100 .
+++ echo-tests/hello.stdout-actual 2011-09-11 19:14:49 +0100
@@ -1 +1 @@
-ອັນອື່ນ
+ສະບາຍດີ, ໂລກ
ການທົດສອບ 1/1
0/1 ການທົດສອບ OK, 1 ຄວາມລົ້ມເຫຼວ
ນອກຈາກນັ້ນ, ໄດ້ ການກວດສຽງ ໄດເລກະທໍລີຈະມີໄຟລ໌ຜົນຜະລິດຕົວຈິງ, ແລະແຕກຕ່າງຈາກ
ໄຟລ໌ທີ່ຄາດໄວ້. ຖ້າຫາກວ່າຫນຶ່ງໃນໄຟລ໌ຜົນຜະລິດທີ່ແທ້ຈິງແມ່ນຖືກຕ້ອງ, ທ່ານສາມາດເຮັດໄດ້
ຕົວຈິງແລ້ວປ່ຽນຊື່ມັນເປັນໄຟລ໌ທີ່ຄາດໄວ້. ໃນຄວາມເປັນຈິງ, ມັນເປັນວິທີທີ່ສະດວກຫຼາຍ
ການສ້າງໄຟລ໌ຜົນຜະລິດທີ່ຄາດວ່າຈະ: ທ່ານດໍາເນີນການທົດສອບ, ການແກ້ໄຂສິ່ງຕ່າງໆ, ຈົນກ່ວາທ່ານໄດ້ດ້ວຍຕົນເອງ
ກວດເບິ່ງຜົນຜະລິດຕົວຈິງແມ່ນຖືກຕ້ອງ, ຫຼັງຈາກນັ້ນທ່ານປ່ຽນຊື່ໄຟລ໌.
ໃຊ້ cmdtest ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net