2012-09-27 7 views
8

मैं 3,7phpunit 3.7: @assert एनोटेशन के साथ क्या हुआ?

  • PHPUnit है 3.6, Appendix B, के प्रलेखन में एक @assert एनोटेशन वहाँ है, जबकि
  • 3.7, Appendix B, के प्रलेखन में वहाँ है कोई@assert एनोटेशन

official announcement का उल्लेख है कुछ नई टिप्पणियां (और पहले पुराने बहिष्कृत की पुन: परिचय), लेकिन यह डी oes @assert को हटाने का जिक्र नहीं है। जब मैं code snippet

<?php 
class MyMathClass 
{ 
    /** 
    * Add two given values together and return sum 
    * @assert (1,2) == 3 
    */ 
    public function addValues($a,$b) 
    { 
     return $a+$b; 
    } 
} 

उत्पादन का उपयोग कर एक वर्ग पर अपने कोड चलाने changelog for 3.7. में, @assert पेज

पर पाया जा करने के लिए नहीं है

PHPUnit 3.7.1 by Sebastian Bergmann. 



Time: 1 second, Memory: 4.25Mb 

No tests executed! 
php 3.6 के साथ

है। 2

phpunit MyMathClass.php 
PHPUnit 3.6.12 by Sebastian Bergmann. 

. 

Time: 0 seconds, Memory: 2.75Mb 

OK (1 test, 1 assertion) 
+1

मैंने सोचा था कि 'assert' एनोटेशन का उपयोग केवल परीक्षण कंकाल उत्पन्न करने के लिए किया जाता था, और मुझे याद है कि सेबेस्टियन उस सुविधा को कम कर रहा था। स्पष्ट रूप से मैं पहले भाग के बारे में गलत हूं लेकिन। । । –

+1

यदि आप '--debug' के साथ phpunit 3.6 चलाते हैं तो यह' प्रारंभिक परीक्षण 'MyMathClassTest :: testAddValues' प्रिंट करता है। ऐसा लगता है कि यह फ्लाई पर कंकाल जनरेटर चलाता है। चूंकि इसके अनियंत्रित होने पर मुझे रखरखाव के लिए इस कार्य को छोड़ना ठीक लगता है। –

उत्तर

5

कुछ शोध करने के बाद अपने स्वयं के प्रश्न का उत्तर दें। और मुझे ट्रैक पर रखने के लिए टिप्पणी करने वालों के लिए धन्यवाद।

एनोटेशन चला गया है क्योंकि इसे वैकल्पिक PHPUnit_SkeletonGenerator पैकेज में स्थानांतरित कर दिया गया है।

इस समय, वहाँ इस के साथ दो भ्रामक मुद्दे हैं:

  1. PHPUnit "मूल"
  2. प्रलेखन ठीक से अपडेट नहीं किया जा रहा

से @assert एनोटेशन को हटाने चेंजलॉग अपरिचित है। यह कहता है (गलत तरीके से):

हटाया गया - स्केलेटन-वर्ग और --स्केलेटन-परीक्षण स्विच हटा दिए गए। कार्यक्षमता अब phpunit- PHPUnit_SkeletonGenerator पैकेज की कमांड द्वारा प्रदान की गई है।

कह यह अधिक इस तरह ध्वनि होगा की एक बेहतर तरीका:

--skeleton वर्ग और --skeleton परीक्षण स्विच पदावनत हटा दिया। कार्यक्षमता अब PHPUnit_SkeletonGenerator पैकेज के वैकल्पिक phpunit- skelgen कमांड द्वारा प्रदान की जाती है। इसलिए, @assert एनोटेशन को phpunit कोर से हटा दिया गया है। यह पीएआर के माध्यम से PHPUnit_SkeletonGenerator स्थापित करने के बाद उपलब्ध हो जाता है।

शायद मैं इसे खुद गिटूब के माध्यम से बदल दूंगा और रखरखाव को सूचित करूंगा।

+0

+1 और उत्तर लिखने के लिए धन्यवाद! मैंने कल सवाल देखा है और इसे ऑफ़लाइन डिबग करते समय उसी निष्कर्ष पर आया था। मुझे इस बीसी ब्रेक (माफ करना!) के बारे में पता नहीं था और जब हमारे पास इसका परीक्षण होता है तो ऐसा लगता है कि परीक्षण अभी नहीं चला था। मुझे वह कोड नहीं मिला जो व्यवहार को बदल गया (समय की बाधाओं के कारण) लेकिन यदि आप PHPUnit के साथ टिकट खोलने या दस्तावेज़ों (रीडमे और/या मैनुअल) के लिए पुल अनुरोध भेजने के लिए बहुत अच्छा लगेगा जो वास्तव में होगा बढ़िया :) - अगर मुझे नहीं पता है और मैं इसे खुद देख लूंगा। --- बस स्पष्ट होना: Skelgen स्थापित करने के बाद यह आपके लिए पहले की तरह काम करता है? :) – edorian