2011-10-31 8 views
5

मैंने एक सिनात्रा ऐप (वेब ​​साइट) लिखा है, और मैं साइट के कोड के लिए कोड कवरेज जानकारी एकत्र करना चाहता हूं। मैं रुबी के लिए नया हूं, लेकिन Google मुझे बताता है कि आरसीओवी एक अच्छा कोड कवरेज टूल है। दुर्भाग्यवश, ऑनलाइन जानकारी प्राप्त करने वाली सभी जानकारी केवल परीक्षण मामलों के बारे में कोड कवरेज जानकारी कैसे प्राप्त करें - मुझे अपनी साइट के बारे में कोड कवरेज जानकारी चाहिए।मैं अपने सिनात्रा ऐप के लिए कोड कवरेज आंकड़े कैसे प्राप्त करूं?

विशेष साइट फ़ाइलों मैं प्रोफ़ाइल करना चाहते हैं "एसडीके" और "एसडीके/विक्रेता" निर्देशिका में हैं, इसलिए जहां मैं सामान्य रूप से के साथ "माणिक site.rb" मेरी साइट चल पाएंगे मैं बजाय निम्नलिखित की कोशिश की:

rcov -Isdk -Isdk/vendor site.rb 

यह सिनात्रा शुरू हुआ पाठ से पता चला है, लेकिन फिर तुरंत बजाय सामान्य मेरी सिनात्रा एप्लिकेशन की तरह वेब अनुरोध के लिए इंतज़ार कर के बाहर निकल गया।

कोई मुझे कोड कवरेज के साथ अपनी साइट को चलाने की चाल बता सकते हैं सक्षम? मैं साइट को चलाने के लिए, अनुरोधों की एक श्रृंखला के साथ मारा, और फिर साइट को रोकना चाहता हूँ; जिसके बाद मैं अनुरोधों की पूरी श्रृंखला से संचित कोड कवरेज आंकड़े देखना चाहता हूं।

मैं वर्तमान में रूबी 1.8.7 का उपयोग कर रहा हूँ।

+0

तुम क्या आप 'किसी ऐप के लिए codecoverage' होने का समझने के लिए के रूप में थोड़ा और अधिक विस्तृत कृपया सकता है? क्योंकि पारंपरिक रूप से इसका मतलब है परीक्षण मामलों का कवरेज – robustus

+0

मेरे पास सिनात्रा का उपयोग करके लागू एक वेबसाइट है। मैं साइट का अभ्यास करना चाहता हूं, और माप सकता हूं कि उस अभ्यास के दौरान साइट का कितना कोड चलाया जाता है। मैं साइट के अभ्यास को स्वचालित करने के लिए किसी भी परीक्षण ढांचे का उपयोग नहीं कर रहा हूं। – Bruce

+0

ऐसा लगता है कि यह आसान होना चाहिए, लेकिन मुझे बस कुछ महत्वपूर्ण अंतर्दृष्टि याद आ रही है। – Bruce

उत्तर

1

शायद तुम SimpleCov पर एक नज़र है, जो कवरेज विश्लेषण के किसी भी प्रकार के लिए अपने सरल उपयोग का विज्ञापन ले सकता है।

+0

यह अच्छा लग रहा है, लेकिन मैं वर्तमान में रूबी 1.8.7 का उपयोग कर रहा हूं, और ऐसा लगता है कि SimpleCov केवल 1.9+ का समर्थन करता है। मैं इस जानकारी के साथ उपरोक्त अपनी समस्या का विवरण अपडेट करूंगा। – Bruce

4

SimpleCov इस के लिए एकदम सही है। आप उपयोग कर रहे हैं RSpec और Bundler सेटअप

gem 'simplecov'

तो

$ bundle install

कल्पना/spec_helper.rb में (कुछ और करने से पहले अपने मणि फ़ाइल में सुपर आसान

है)

require 'simplecov' 
SimpleCov.start 

तो: $ rspec spec

Simplecov कवरेज पर वास्तव में एक अच्छा कवरेज रिपोर्ट बनाता है/index.html

+0

मैं rspec का उपयोग नहीं कर रहा हूं - जैसा कि मैंने अपने प्रश्न में बताया है, मैं अपनी साइट फ़ाइलों पर कोड कवरेज चाहता हूं, परीक्षणों पर नहीं। – Bruce

+0

पर्याप्त मेला। मुझे लगता है कि मैंने इस सवाल को गलत समझा। क्या आप कह रहे हैं कि आप परीक्षण करना चाहते हैं कि किसी निश्चित अनुरोध या अनुरोधों के सेट के अनुसार कोड की कौन सी पंक्तियां निष्पादित की जा रही हैं? मैं बस कुछ इकाई या एकीकरण परीक्षण लिखने का सुझाव देना चाहूंगा। आपके परीक्षण सूट के अलावा अन्य कवरेज रिपोर्ट के लिए कौन सी परिस्थितियों में उपयोगी होगा? – jacobsimeon

+0

यह सही है। मैं कुछ सर्वर-साइड कोड का परीक्षण कर रहा हूं जो ब्राउज़र, सिनात्रा सर्वर और अन्य दूरस्थ वेब सेवाओं के बीच बातचीत के साथ काफी जटिल वातावरण में चलता है।यह काफी संभावना है कि मैं रूबी टेस्ट harnesses में से एक का उपयोग कर सकता था और कॉन्फ़िगरेशन के सभी बिट्स का सीधे परीक्षण नहीं किया जा सकता था, लेकिन मैं रूबी के लिए नया हूं इसलिए मुझे जटिल प्रणाली को लागू करने के लिए यह आसान और सुरक्षित पाया गया और फिर ब्राउज़र से इसका प्रयोग करें। ऐसा करने के बाद, अब मुझे उत्सुकता है कि मैं जिस रूबी कोड का परीक्षण कर रहा हूं वह वास्तव में मेरे परीक्षणों से मारा जा रहा है। – Bruce

संबंधित मुद्दे