समस्या
मेरे कोड की गुणवत्ता में सुधार करने के लिए, मैंने अपने औसत दर्जे के सर्वश्रेष्ठ परीक्षण समाधानों के बजाय यूनिट परीक्षण का उपयोग करके अपने कोड को कैसे परीक्षण करना सीखने की कोशिश करने का निर्णय लिया है।
मैंने एक निजी पुस्तकालय के लिए संगीतकार का उपयोग करके PHPUnit को स्थापित करने का निर्णय लिया, जो मुझे सामान्य डेटाबेस फ़ंक्शन प्राप्त करने की अनुमति देता है। पहले तो मेरे पास PHPUnit के लिए एक विन्यास फाइल नहीं थी और जब मैंने जैसे कमांड चलाया:
$ phpunit tests/GeneralStringFunctions/GeneralStringFunctionsTest
कृपया ध्यान दें कि यह एक टर्मिनल कमांड है, इसलिए मैंने .php
एक्सटेंशन को शामिल नहीं किया । ऊपर वर्णित GeneralStringFunctionsTest वास्तव में एक GeneralStringFunctionsTest.php
फाइल है।
आउटपुट वह है जिसकी मुझे उम्मीद थी:
समय: 31 एमएस, मेमोरी: 2.75 एमबी
ठीक है (1 परीक्षण, 1 जोर)
फिर मैंने हर बार फ़ाइल में मैन्युअल रूप से टाइप करने के बजाय परीक्षण सूट को स्वचालित रूप से लोड करने के लिए एक कॉन्फ़िगरेशन फ़ाइल का उपयोग करने की कोशिश की। मैंने phpunit.xml
अपनी रूट डायरेक्टरी में एक फाइल बनाई , और निम्नलिखित को फाइल में दर्ज किया: http://pastebin.com/0j0L4BBB :
<?xml version = "1.0" encoding="UTF-8" ?>
<phpunit>
<testsuites>
<testsuite name="Tests">
<directory>tests</directory>
</testsuite>
</testsuites>
</phpunit>
अब, जब मैं कमांड चलाता हूं:
phpunit
मुझे निम्न आउटपुट मिले:
सेबस्टियन बर्गमैन और योगदानकर्ताओं द्वारा PHPUnit 4.5.0।
/Users/muyiwa/Projects/DatabaseHelper/phpunit.xml से कॉन्फ़िगरेशन पढ़ा गया
समय: 16 एमएस, मेमोरी: 1.50 एमबी
कोई परीक्षण निष्पादित नहीं!
मामले में यह उपयोगी है, मेरी निर्देशिका संरचना इस प्रकार है:
src - शीर्ष स्तर निर्देशिका (मेरे सभी स्रोत कोड के साथ)
परीक्षण - शीर्ष स्तर निर्देशिका (मेरे सभी परीक्षणों के साथ, मेरे src फ़ोल्डर के समान संरचित )
विक्रेता - संगीतकार तृतीय पक्ष फ़ाइलें
मेरे पास कंपोजर जोंस और लॉक फाइल भी है, साथ ही फाइल के रूप में टॉप लेवल में phpunit xml फाइल भी है।
चीजें जो मैंने कोशिश की हैं
- में निर्देशिका बदलने
phpunit.xml
के लिएtests/GeneralStringFunctions
- में निर्देशिका बदलने
phpunit.xml
के लिए./tests
- चलती
phpunit.xml
करने के लिए फ़ाइलtests
निर्देशिका और फिर बदलते निर्देशिका होने की./
बजायtests
। phpunit.xml
"टेस्ट" को स्पष्ट प्रत्यय के रूप में निर्दिष्ट करने के लिए निर्देशिका टैग में एक प्रत्यय विशेषता जोड़ना।
tests/GeneralStringFunctions/GeneralStringFunctionsTest
एक फ़ोल्डर या फ़ाइल नाम?