एक विकल्प हाल के दिनों में आदि
@Test public void testStuff() {
// Create a source file to process, or load one from disk.
JavaFileObject file = JavaFileObjects.fromSourceLines("test.Foo",
"package test;",
"",
"import bar.*;",
"",
"@MyAnnotation(blah=false)",
"interface TestInterface {",
" Bar someBar();",
"}",
// assert conditions following a compilation in the context of MyProcessor.
assert_().about(javaSource()).that(file)
.processedWith(new MyProcessor())
.failsToCompile()
.withErrorContaining("some error message").in(file).onLine(5);
}
यह परीक्षण आप उम्मीद, http://github.com/google/compile-testing आप मनमाने ढंग से व्याख्या प्रोसेसर, आप ब्रेक अंक निर्धारित कर सकते हैं जिसके खिलाफ संकलन काम आह्वान की सुविधा देता है जो की तरह कुछ का उपयोग करने के माध्यम से कदम, है कुछ त्रुटि संदेश प्राप्त होगा क्योंकि परीक्षण डेटा स्रोत में @MyAnnotation गलत तरीके से घोषित किया गया है। यदि यह दावा विफल रहता है, तो आप इसे अपने आईडीई में डीबग मोड में चला सकते हैं, माइप्रोसेसर में ब्रेकपॉइंट सेट कर सकते हैं और डीबगिंग के दौरान सक्रिय एक पूर्ण कंपाइलर वातावरण के साथ कदम उठा सकते हैं।
इकाई परीक्षण के लिए विशिष्ट विधियों के भीतर अपने प्रोसेसर, आप भी @Rule CompilationRule जहाँ से आप एक और अधिक अलग-थलग तरीके से अपने संकलक में विशिष्ट तर्क का परीक्षण करने में तत्वों और प्रकार उपयोगिता वर्गों प्राप्त कर सकते हैं कहा जाता है का उपयोग कर सकते हैं।
स्रोत
2014-11-06 21:49:57
नमस्ते, इस उत्तर को स्वीकार करने के रूप में पढ़ना, मुझे लगता है कि यह समस्या का समाधान है। वैसे,, मुझे समझ में नहीं आ रहा है कि "डीबग कॉन्फ़िगरेशन का उपयोग करके ग्रहण से जावा कंपाइलर को क्या कहते हैं (आपको" डीबग कॉन्फ़िगरेशन "से मैन्युअल रूप से कॉन्फ़िगरेशन बनाना होगा। मतलब है। क्या आप बेहतर समझा सकते हैं? धन्यवाद – Apperside
मैंने tools.jar और प्रोसेसर जार को एक मौजूदा प्रोजेक्ट में जोड़ा। फिर com.sun.tools.javac.Main क्लास का सुझाव दिया गया। क्लासपाथ में tools.jar के साथ जावा एप्लिकेशन डीबग कॉन्फ़िगरेशन बनाया गया, और जावैक तर्क कार्यक्रम तर्क। एक आकर्षण की तरह काम किया - धन्यवाद! – wbdarby