2009-08-05 12 views
8

मैं रेक परीक्षण चलाने में असमर्थ हूँ:रेल: रेक टेस्ट: functionals (winxp पर sqlite3) डीबी उपयोग नहीं कर सकते

rake aborted! 
Permission denied - db/test.sqlite 

(See full trace by running task with --trace) 

मेरे सेटअप Windows XP पर है: SQLite3 साथ functionals, यह मुझे इस त्रुटि देता है। टेस्ट कुछ सप्ताह पहले काम कर रहे थे। रेल 2.3.2, रेक 0.8.7, sqlite3-माणिक 1.2.5 जवाहरात

मैं विकास के लिए Netbeans का उपयोग कर रहा है, लेकिन तब भी जब यह करीब है मैं एक कमांड प्रॉम्प्ट से परीक्षण नहीं चल सकता।

मैंने यह भी जांच की कि test.sqlite को कोई हैंडल खुला नहीं है (sysinternals कार्य प्रबंधक के माध्यम से)।

मैं अनुमतियों की जाँच की, वे ठीक हैं।

मैंने फ़ाइल को हटाने और इसे फिर से बनाने की कोशिश की, या किसी भी भाग्य के बिना किसी अन्य फ़ाइल नाम पर प्रतिलिपि बनाने की कोशिश की।

मैं जैसे ही अपने कंप्यूटर हटा दिया गया है आदेश चलाकर की कोशिश की।

किसी भी मदद की सराहना की है।

धन्यवाद

+0

रेक डाटाबेस जैसे अन्य कमांड: विस्थापित या पर्ज या क्लोन इस डेटाबेस पर काम कर रहे हैं। यह केवल परीक्षण है: कार्य विफल जो विफल रहता है। – user62605

उत्तर

1

आप Cygwin के तहत चला रहे हैं, अपने डेटाबेस फ़ाइलों पर इस चल रहा प्रयास करें:

chmod 777 <your-files> 

Cygwin अनुमतियाँ क्या लागू किया जाना चाहिए के बारे में उलझन बन सकता है।

हाँ मैं जानता हूँ कि इन अनुमतियों को हास्यास्पद हैं, लेकिन इतना Cygwin कभी कभी होता है ...

+0

नहीं, मैं Windows के तहत चल रहा हूँ। वैसे भी कोशिश की, और काम नहीं कर रहा है। – user62605

2

मेरी ओर से बहुत, बहुत समान व्यवहार: Windows XP, sqlite3, रेल 2.3.4, रेक 0.8.7, रूबी 1.8 .6

रेक परीक्षण

काम करता है (लेकिन मैं यह वास्तव में इकाई परीक्षण चल रहा है पर विश्वास नहीं करते)

रेक परीक्षण: इकाइयों

और

रेक परीक्षण: functionals

दोनों एक साथ विफल "अनुमति अस्वीकृत - db/test.sqlite3" --trace सक्षम होने के साथ फ़ाइल त्रुटि। (dbfile)

तो "फ़ाइल.डिलेट (डीबीफ़ाइल) को पढ़ने वाली एक पंक्ति पर ../rails-2.3.4/lib/task/databases.rake:370 पर विशिष्ट त्रुटि होती है ... लम्बी कहानी थानेदार आरटी ... मैं इसे बाहर टिप्पणी की।

यह एक ठीक नहीं है, लेकिन यह एक हैक के लिए पर्याप्त परीक्षण मेरे लिए काम करने के लिए गया था।

+0

कि लाइन मेरे लिए बहुत समस्या लगती है ... हालांकि इसके बारे में क्या करना है यकीन नहीं! – aardvarkk

0

बस एक बाज़ी, लेकिन आप

database: db\test.sqlite3 

अर्थात एक forwardslash के बजाय एक बैकस्लैश को config/database.yml में पथ को बदलने की कोशिश की है। या यहां तक ​​कि एक पूर्ण डॉस शैली पथ। मुद्दा यह https://rails.lighthouseapp.com/projects/8994/tickets/4153-dbcreate-cannot-open-database-for-sqlite3-on-windows-with-cygwin

3

मैं सिर्फ इस मुद्दे था से संबंधित हो सकता। मेरे लिए, मेरे कारण एक परीक्षण वातावरण में मेरे रेल कंसोल खोले गए थे। मेरे सत्र को बंद कर दिया और यह अब त्रुटि फेंक दिया।

0

मैं भी इस समस्या का सामना कर रहा था और मैं दोषी पाया एक इंजन है कि पर्यावरण लोड होने के दौरान डेटाबेस क्वेरी करने गया था और वे हटाए जाने से sqlite3 फ़ाइल को रोकने में एक प्रारंभकर्ता होने के लिए:

module Frame 
    class Engine < ::Rails::Engine 
    isolate_namespace Frame 

    # Engine initializer causing the problem. 
    initializer "frame.wrap_parameters" do 
     ActiveSupport.on_load(:action_controller) do 
     if respond_to?(:wrap_parameters) 

      # This is the problem line, Link is a model and Link.attribute_names 
      # is accessing the DB. 
      wrap_parameters Link, include: Link.attribute_names + [:parent_id] 

     end 
     end 
    end 

    end 
end 

मैं इसे ठीक किया गया Intializer से डीबी आवश्यकता को हटाकर।

इस मुद्दे के बारे में अजीब चीज यह थी कि इंजन के लिए उन्हें चलाने के दौरान परीक्षण काम करेंगे, लेकिन जब किसी परियोजना में इंजन को घुमाया गया था, तो यह सभी परियोजनाओं के परीक्षणों को विफल करने का कारण बन जाएगा।

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