2012-01-16 17 views
13

वर्तमान में मैं डुनिट (टेस्ट प्रोजेक्ट -> टेस्ट केस -> टेस्ट विधि में 2-स्तर परीक्षण पदानुक्रम का उपयोग कर रहा हूं; नीचे उदाहरण देखें)। क्या यह तीसरे स्तर या यहां तक ​​कि अधिक स्तरों को पेश करना संभव है?डुनिट परीक्षण पदानुक्रम

DUnit Example

उत्तर

9

आप के रूप में आप की इच्छा घोंसले के रूप में कई स्तरों बनाने के लिए परीक्षण स्वीट उपयोग कर सकते हैं। documentation निम्न उदाहरण प्रदान करता है:

TestFramework इकाई TTestSuite वर्ग, वर्ग कि लागू करता है परीक्षण स्वीट को उजागर करता है, तो आप और अधिक स्पष्ट कोड का उपयोग कर परीक्षण पदानुक्रम बना सकते हैं:

निम्नलिखित समारोह, UnitTests , टेस्ट स्वीट बनाकर उसे दो परीक्षण वर्गों को जोड़ता है:

function UnitTests: ITestSuite; 
var 
    ATestSuite: TTestSuite; 
begin 
    ATestSuite := TTestSuite.create('Some trivial tests'); 
    ATestSuite.addTest(TTestArithmetic.Suite); 
    ATestSuite.addTest(TTestStringlist.Suite); 
    Result := ATestSuite; 
end; 

फिर भी एक और तरीका करने के लिए लागू ऊपर समारोह होगा:

function UnitTests: ITestSuite; 
begin 
    Result := TTestSuite.Create(
    'Some trivial tests', 
    [TTestArithmetic.Suite, TTestStringlist.Suite] 
); 
end; 

उपरोक्त उदाहरण में, TTestSuite निर्माता सूट के लिए पारित सरणी में परीक्षण कहते हैं।

आप एक ही का उपयोग कर कॉल आप अलग-अलग परीक्षण मामलों पंजीकरण के लिए उपयोग द्वारा टेस्ट स्वीट ऊपर तरीकों में से किसी में बनाया रजिस्टर कर सकते हैं:

initialization  
    RegisterTest('Simple Test', UnitTests); 
end. 

जब GUITestRunner साथ चलाने के लिए, आप नए पदानुक्रम देखेंगे।

+0

यह काम करता है, धन्यवाद। – kludg

+6

@ सर्ग आप उस नाम में डॉट्स भी जोड़ सकते हैं जिसके तहत आप परीक्षण पंजीकृत करते हैं और डुनिट प्रति डॉट स्तर जोड़ देगा। उदाहरण के लिए, जब आप 'रजिस्टरटेस्ट' ('Simple.Test', UnitTests) करते हैं, तो यह परीक्षण पदानुक्रम में उस के उपन्यास के रूप में एक नोड और टेस्ट के रूप में सरल बना देगा। एक ही कार्यात्मक नाम के तहत विभिन्न इकाइयों में समूह परीक्षणों के लिए बहुत अच्छी सुविधा। –

+0

@ मारजन +1 जो अच्छा है, उसे नहीं पता था। मुझे एहसास है कि डुनिट में बहुत सारी शक्ति है जो व्यापक रूप से नहीं जानती है। –

3

आप परीक्षण सूट में संबंधित परीक्षणों को समूहित कर सकते हैं, जिन्हें घोंसला जा सकता है।

यदि आप इसे रन टाइम पर करना चाहते हैं, तो मेरा "ओपन कंपोनेंट टेस्ट फ्रेमवर्क (ओपनसीटीएफ)" sourceforge पर देखें।

11

मैं 'सूटपाथ' में बैकस्लैश डालकर एक पदानुक्रम का निर्माण करता हूं। उदाहरण के लिए:

initialization 

    RegisterTests('Group1\Group2', [TExampleTests1.Suite, 
            TExampleTests2.Suite]); 

    RegisterTests('Group1\Group3', [TExampleTests3.Suite, 
            TExampleTests4.Suite]); 
end. 

अंत में मैं कुछ इस तरह मिलती है:

Example DUnit Test Hierarchy

एक बहुत कम डेविड के तरीके के साथ की तुलना में आसपास mucking, और आप अलग-अलग इकाइयों में अपने समूह परिभाषाओं फैल सकता है।