मेरे "टेस्ट" लक्ष्य रन के बाद एक निश्चित सफाई कार्य कैसे चला सकता है, भले ही परीक्षण लक्ष्य सफल हुआ या असफल रहा (जैसे try...finally सी #/जावा में निर्मित)।कोशिश करें ... आखिरकार एमएसबिल्ड
उत्तर
लक्ष्य तत्व एक OnError विशेषता त्रुटि पर अमल करने के लिए एक लक्ष्य के लिए सेट कर सकते हैं नहीं है, लेकिन के रूप में यह केवल कार्यान्वित करता है, तो लक्ष्य कोई त्रुटि है तो यह केवल अपने आधे परिदृश्य को हल करती है।
क्या आपने परीक्षण 'चरण' का प्रतिनिधित्व करने के लिए लक्ष्य एकत्रित करने पर विचार किया है जिसे आप निष्पादित करना चाहते हैं?
<PropertyGroup>
<TestSteps>TestInitialization;Test;TestCleanup</TestSteps>
</PropertyGroup>
'TestInitialization' लक्ष्य है, जहां आप किसी भी परीक्षा प्रारंभ प्रदर्शन कर सकते हैं, 'टेस्ट' लक्ष्य परीक्षण निष्पादित करता है, 'TestCleanup' लक्ष्य पद परीक्षण किसी भी प्रकार को साफ करता है।
फिर, इन लक्ष्यों को RunEachTargetSeparately विशेषता सच करने के लिए सेट का उपयोग कर CallTarget कार्य का उपयोग कर निष्पादित। सफलता या विफलता के बावजूद यह सभी लक्ष्य निष्पादित करेगा।
पूरा नमूना नीचे है:
<Project DefaultTargets = "TestRun"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
<!-- Insert additional tests between TestInitialization and TestCleanup as necessary -->
<PropertyGroup>
<TestSteps>TestInitialization;Test;TestCleanup</TestSteps>
</PropertyGroup>
<Target Name = "TestRun">
<CallTarget Targets="$(TestSteps)" RunEachTargetSeparately="True" />
</Target>
<Target Name = "TestInitialization">
<Message Text="Executing Setup..."/>
</Target>
<Target Name = "Test">
<Message Text="Executing Test..."/>
<!-- this will fail (or should unless you meet the conditions below on your machine) -->
<Copy
SourceFiles="test.xml"
DestinationFolder="c:\output"/>
</Target>
<Target Name = "TestCleanup">
<Message Text="Executing Cleanup..."/>
</Target>
</Project>
या <OnError>
का उपयोग त्रुटि के मामले में अपने लक्ष्य फोन करने के लिए, और DependsOnTargets
या CallTarget
सामान्य मामले में अपने ही लक्ष्य फोन करने के लिए।
- 1. जावास्क्रिप्ट: कोशिश/पकड़ें/आखिरकार वापसी कथन
- 2. आखिरकार एक कोशिश/पकड़ ब्लॉक में "दायरे से बाहर"
- 3. कोशिश/आखिरकार (कैच के बिना) अपवाद बबल होगा?
- 4. आखिरकार कोशिश करने/पकड़ने के लिए ठीक है?
- 5. एमएसबिल्ड -
- 6. एमएसबिल्ड
- 7. एमएसबिल्ड
- 8. क्या ऐसा कोई मामला है जब आखिरकार कोशिश करें अंततः ब्लॉक नहीं किया जाएगा?
- 9. थ्रेड - क्यों प्रयास करें और आखिरकार
- 10. एमएसबिल्ड
- 11. एमएसबिल्ड
- 12. एमएसबिल्ड फाइलों को गठबंधन करें
- 13. एमएसबिल्ड
- 14. एमएसबिल्ड
- 15. कोशिश करें।
- 16. सभी परिभाषित एमएसबिल्ड वैरिएबल सूचीबद्ध करें -
- 17. "कैच" या "आखिरकार" में दायरे में "कोशिश" में घोषित चर क्यों नहीं हैं?
- 18. स्कैला की "कोशिश" का अर्थ कैच या आखिरकार ब्लॉक के बिना क्या होता है?
- 19. नेस्टेड कोशिश करें/पकड़ें
- 20. पाइथन कोशिश करें लैम्बडा
- 21. कैच की कोशिश करें
- 22. जावास्क्रिप्ट कोशिश करें/पकड़ें
- 23. क्या सी # # कथन का उपयोग करने का प्रयास करें/आखिरकार?
- 24. एमएसबिल्ड चरण
- 25. आप एमएसबिल्ड
- 26. एमएसबिल्ड परियोजना
- 27. एमएसबिल्ड: VS2010
- 28. एमएसबिल्ड: प्रोजेक्ट
- 29. एमएसबिल्ड टीमसिटी
- 30. क्या यह सुनिश्चित करने के लिए कि आखिरकार विधि समाप्त होने पर कुछ किया जाता है, कोशिश करें?
अभी यह परीक्षण करने आया है, और यह पूरी तरह से काम करता है। बल्कि पूर्ण उदाहरण के लिए धन्यवाद। – ripper234
एनपी! खुशी हुई यह काम किया! –
अच्छा जवाब, हालांकि यह जानना अच्छा होगा कि 'रीथ्रो' कैसे करें, कोशिश/आखिरकार समानता जारी रखें। सफाई को निष्पादित करने की आवश्यकता हो सकती है चाहे कोई फर्क नहीं पड़ता, लेकिन निर्माण अभी भी विफल हो गया है। –