मैं एक आर पैकेज के लिए कुछ परीक्षण लिख रहा हूं और R CMD check
रखना चाहता हूं कि फ़ंक्शन कुछ इनपुट के लिए सही चेतावनियां प्रदर्शित करते हैं। लेकिन मैं यह नहीं समझ सकता कि चेतावनी आउटपुट कैप्चर कैसे करें ताकि मैं इसका परीक्षण कर सकूं।यह देखने के लिए कि क्या चेतावनी सही ढंग से फेंक दी गई है, में पैकेज परीक्षण कैसे लिखें?
तो अगर मैं एक समारोह की तरह: options
बदलकर
warningOutput <-try(throwsWarning(1))
if (warningOutput!='Argument "x" is greater than zero, results may be incorrect'){
stop('function "throwsWarning" did not produce correct warning when x>0')
}
अब तक मैंने पाया संभव आंशिक समाधान:
throwsWarning<-function(x){
if(x>0){
warning('Argument "x" is greater than zero, results may be incorrect')
}
# do something useful ...
}
मैं की तरह अपने परीक्षण फ़ाइल में एक कुछ चाहते हैं ताकि चेतावनियों को trycatch
ब्लॉक के साथ त्रुटियों और आस-पास के रूप में माना जाता है। last.warning
का परीक्षण मान भी माना जाता है, लेकिन अगर चेतावनी नहीं फेंक दी जाती है तो यह खतरनाक प्रतीत होता है (पिछले मूल्य का परीक्षण करेगा)। ऐसा लगता है कि ऐसा करने का एक आसान तरीका होना चाहिए कि मुझे याद आ रही है?
आप अपने परीक्षणों में 'testthat' का उपयोग नहीं कर रहे हैं। – Spacedman