के साथ JUnit 4 टाइमआउट्स के दौरान अधिक जानकारी जोड़ना मैं @RunWith(value = Parameterized.class)
का उपयोग कर एक जुनीट 4 परीक्षण चला रहा हूं। यह ठीक काम करता है, कोई समस्या नहीं है। हालांकि, जब मेरे 34 परीक्षण टाइमआउट में से कोई भी, मुझे केवल java.lang.Exception: test timed out after 15000 milliseconds
संदेश मिलता है। मैं चाहता हूं कि यह परीक्षण के पैरामीटर को भी दिखाए।पैरामीटरकृत धावक
मैंने इसे नीचे दिए गए कोड की तरह करने की भी कोशिश की है (जो मुझे पता है कि ज्यादातर मामलों के लिए एक भयानक समाधान है, मैं बस देखना चाहता था कि मुझे कोई संदेश दिखाने के लिए संदेश मिल सकता है), लेकिन ऐसा नहीं हुआ काम, यह अभी भी ऊपर संदेश में परिणाम हुआ।
private String parameter;
@Test(timeout = 15000)
public void solveAll() {
try {
// ... do something that might take a long time
}
catch (Throwable e) {
Assert.fail(this.parameter + " failed! Because of " + e.getMessage());
}
}
मैं JUnit भी this.parameter
दिखाने के कैसे कर सकते हैं जब एक समय समाप्ति में परीक्षण के परिणाम?
यहाँ एक बहुत ही सरल उदाहरण परीक्षण वर्ग कि इस समस्या से पता चलता है:
public class ShowMyMessageTest {
@Test(timeout=1000)
public void test() {
try {
Thread.sleep(3000);
}
catch (Throwable e) {
Assert.fail("Timeout reached with value 42");
}
}
}
इस ShowMyMessageTest
के साथ मैं कभी-कभी आशा "समय समाप्त मूल्य 42 के साथ पहुँचा" हो, और कभी कभी मैं सिर्फ "java.lang मिलता है। अपवाद: 1000 मिलीसेकंड के बाद परीक्षण का समय समाप्त हो गया "। मैं हमेशा इस मामले में "मूल्य 42 के साथ टाइमआउट पहुंच गया" प्राप्त करना चाहता हूं।
@After के साथ आपका हैकी-समाधान मेरे लिए काफी अच्छा काम करता है :) –