2012-04-13 8 views
8

जावा में मल्टीथ्रेडिंग कोड के लिए यूनिट परीक्षण लिखने के लिए आप कौन सी ढांचे की सिफारिश करेंगे? उदाहरण के लिए, उदाहरण के लिए, जब आपके पास ऐसा प्रोग्राम होता है जो निष्पादन के कई अनुमत पथों और कुछ बहिष्कृत पथों (जैसे "निष्पादन योग्य इकाई 1, 2 और 3 समानांतर में चलाया जा सकता है, जैसे कम से कम दो चलाना चाहिए, जैसे धागे का एक गुच्छा निष्पादित करना है। समानांतर में, और 4 को हमेशा 3 के बाद चलाना पड़ता है ")।जावा में मल्टीथ्रेडिंग के लिए Unittests के लिए फ्रेमवर्क

उत्तर

3

मैं समवर्ती परीक्षणों के लिए उपयोग करने के लिए JUnit @Rule पढ़ने का सुझाव देता हूं।

2

मैं ContiPerf2 की अनुशंसा करता हूं क्योंकि यह ढांचे का उपयोग करना बहुत आसान है। हालांकि मुझे नहीं लगता कि यह निष्पादन पट्ट या कुछ ऐसा घोषित करने की संभावना प्रदान करेगा।

1

आप parametrized JUnit परीक्षण को यहां बताए गए उपयोग कर सकते हैं: http://junit.org/junit/javadoc/4.5/org/junit/runners/Parameterized.html

लेकिन आप अलग धागा पूल का उपयोग करके धागा तर्क अपने आप को प्रोग्राम करने, उदाहरण के लिए की आवश्यकता होगी।

यदि आप साबित करना चाहते हैं कि आपका कोड थ्रेड सुरक्षित है तो आप पथदर्शी (http://javapathfinder.sourceforge.net/) पर एक नज़र डाल सकते हैं।

1

यह धागा समवर्ती कोड का परीक्षण करने के लिए कुछ सामान्य दृष्टिकोणों का वर्णन करता है।

Designing a Test class for a custom Barrier

विशिष्ट चौखटे के लिए, tempus-fugit कुछ JUnit rules to run things in parallel है, लेकिन जैसा कि ऊपर का सुझाव दिया है, तो आप कर रहे हैं परीक्षण की संभावना अधिक तर्क शामिल करना होगा।

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