2015-03-31 5 views
18

मेरे पास कुछ डेटा फ़ाइलें हैं जो केवल मेरे परीक्षण कार्यक्रम से संबंधित हैं और मुख्य पुस्तकालय के साथ वितरित करने में भ्रमित हो जाएंगी।केवल कैबल परीक्षण सूट में डेटा फ़ाइलों को शामिल करना

दुर्भाग्यवश, .cabal data-files field केवल एक संपूर्ण कैबल फ़ाइल पर लागू होता है, न कि test-suite जैसे एकल अनुभाग पर। अगर मैं एक परीक्षण सूट श्लोक में इसका इस्तेमाल करने की कोशिश मैं बस मिलती है:

Warning: ssh.cabal: Unknown fields: data-files (line 71) 

वहाँ अपने परीक्षण कार्यक्रम के साथ इन फ़ाइलों संबद्ध करने के लिए एक प्राकृतिक तरीका है ताकि वे चारों ओर कॉपी हो ही अगर --enable-tests निर्दिष्ट किया जाता है?

यदि कोई बेहतर तरीका नहीं है तो मैं शायद निष्पादन योग्य में एम्बेड करने के लिए टेम्पलेट हास्केल का उपयोग करूंगा और फिर उन्हें रनटाइम या फिर कुछ ऐसा लिखूंगा, लेकिन यह बहुत बदसूरत लगता है।

उत्तर

3

कोई कैबल विशेषता नहीं है जो आपको डेटा फ़ाइलों को एक परीक्षण सूट (या आपके निर्माण के किसी गैर-वैश्विक स्टेन्ज़ा) से संबद्ध करने की अनुमति देती है।

इस समस्या का सामान्य समाधान उन फ़ाइलों को extra-source-files विशेषता में घोषित करना है। यह विशेषता वैश्विक भी है, और यह सुनिश्चित करती है कि सूचीबद्ध फाइलें रिलीज टैरबॉल में शामिल हों ताकि परीक्षण सूट चलाने पर उन्हें ढूंढ सके। data-files के विपरीत, extra-source-files — स्थापित नहीं हैं जो शायद आप चाहते हैं कि आपका परीक्षण सूट स्थापित न हो। तो फाइलें बिल्ड (और टेस्ट सूट रन) के दौरान उपलब्ध हैं, लेकिन वे इंस्टॉलेशन में जगह नहीं ले पाएंगे।

cabal-install और stack तरह

बिल्ड ड्राइवरों वर्तमान कार्यशील निर्देशिका अपनी परियोजना, निर्देशिका कि अपने प्रोजेक्ट की कबाल फ़ाइल में अर्थात के शीर्ष-स्तरीय निर्देशिका में ओर इशारा करते हुए के साथ टेस्ट स्वीट निष्पादित करेंगे। इस प्रकार, यदि आपके पास test/my-data-file.txt पर एक डेटा फ़ाइल है, तो आपका परीक्षण सूट बिल्कुल उस पथ का उपयोग कर फ़ाइल तक पहुंच सकता है।

+0

क्या यह परीक्षण सूट बाइनरी को इंगित नहीं करता है कि स्रोत कोड कहां रहता है? –

+0

गणेश, मैंने टेस्ट डेटा फ़ाइल स्थानों को संबोधित करने के लिए अपनी प्रतिक्रिया संपादित की। –

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