2009-04-21 11 views
23

मैं यह देखने की कोशिश कर रहा हूं कि जवाडॉक्स के माध्यम से मेरी जूनिट रिपोर्ट में "वर्णनात्मक पाठ" शामिल करने का कोई तरीका है या नहीं। JUnit 4 टेस्टएनजी की तरह @ टेस्ट एनोटेशन के लिए 'विवरण' विशेषता का समर्थन नहीं करता है।जुनीट रिपोर्ट्स - टेस्ट विधि विवरण

अब तक मैंने जो शोध किया है उससे वहां केवल एक उपकरण है जिसे जावाडोक-जुनीट (http://javadoc-junit.sourceforge.net/) कहा जाता है। हालांकि मैं इसे काम करने के लिए नहीं मिला क्योंकि यह जूनिट 4 के साथ असंगत प्रतीत होता है।

जो मैं चाहता हूं वह जुनीट रिपोर्ट में मेरी प्रत्येक टेस्ट विधि के साथ एक वाक्य या दो पाठ प्रदान करने का कोई तरीका है। JavaDoc कोई अच्छा नहीं है क्योंकि लक्षित दर्शकों को दस्तावेज़ और/या परीक्षण आंकड़े देखने के लिए जावाडॉक और जूनिट रिपोर्ट के बीच स्विच करना होगा।

किसी को भी कुछ और पता है जो मैं न्यूनतम प्रयास के साथ उपयोग कर सकता हूं?

बेस्ट, Ray J

+1

अच्छा प्रश्न है। मैं इसके लिए एक समाधान में भी रुचि रखूंगा। – martin

+0

5 साल बाद, एक ही समस्या। :) – mario

+0

जूनिट 5 कस्टम टेस्ट नामों का समर्थन करेगा: http://junit.org/junit5/docs/current/user-guide/#custom-names – gontard

उत्तर

6

मैं JUnit परीक्षण में javadocs न रखें। मैं आमतौर पर विधि का नाम वर्णनात्मक बनाता हूं, इसलिए यह किसी भी टिप्पणी के मुकाबले उतना अच्छा या बेहतर है जितना मैं आ सकता हूं।

-1

मैं कल्पना कर सकता था कि Framework for Integrated Tests (FIT) एक अच्छा और साफ समाधान होगा।

एफआईटी क्या करता है?
एफआईटी एक ढांचा है जो वर्ड डॉक्यूमेंट, विकी टेबल या एचटीएमएल टेबल में टेबल के माध्यम से परीक्षण लिखने की अनुमति देता है।
किसी तालिका के बाहर के प्रत्येक चरित्र को एफआईटी द्वारा अनदेखा किया जाता है और आपको दस्तावेज़, विवरण, आवश्यकताएं आदि दर्ज करने देता है।

इन तालिकाओं पर कैसा दिखता है?

एक फ़ंक्शन MyMath.square(int) कल्पना करें जो इसके इनपुट पैरामीटर को चौकोर करता है।

class.with.Fixture.Square 
x square() 
2 4 
5 25 

प्रथम स्तंभ इनपुट मानों, दूसरी अपेक्षित परिणाम का वर्णन करता है: आप एक तथाकथित स्थिरता का निर्माण करने के लिए, अपने MyMath और निम्न तालिका के बीच एक एडाप्टर किया जा रहा है। यदि यह बराबर नहीं है, तो यह फ़ील्ड लाल के रूप में चिह्नित है।

एक स्थिरता कैसा दिखता है?

package class.with.Fixture // Must be the same as in the fist row of the table 

public class Square extends Fixture { 
    public int x; // Must be the same as in the second row 
    public int square() { // Must be the same as in the second row 
     return MyMath.square(x); 
    } 
} 

शायद, आप अपनी आवश्यकताओं के लिए फिट का उपयोग कर सकते हैं:
दिया उदाहरण के लिए, यह सही स्थिरता होगा।
अधिक जानकारी के लिए मेरे उत्तर टिप्पणी करने या अपने प्रश्न को संपादित करने के लिए स्वतंत्र महसूस करें!

+0

यह नहीं मिला कि यह आपके testMethod के लिए वर्णनात्मक संदेश जोड़ने के आपके प्रश्न का उत्तर कैसे देता है। क्या एफआईटी इस सुविधा को प्रदान करता है? – hakish

+0

सीधे नहीं, लेकिन आप अपने वर्ड दस्तावेज़ में अच्छा दस्तावेज कर सकते हैं, परीक्षण विधि क्या करती है और क्या करना चाहिए। – guerda

8

Allure नामक हालिया समाधान भी है। यह एक जावा-आधारित परीक्षण निष्पादन रिपोर्ट है जो मुख्य रूप से कोड में पूरक एनोटेशन जोड़ने पर आधारित है।मौजूदा टिप्पणियां शामिल हैं:

  • कस्टम विवरण: @Description ("एक शांत परीक्षण")
  • समूहीकरण सुविधाओं या कहानियों के द्वारा: @Features ({ "feature1", "feature2"}), @Stories ({ "story1", "story2"})
  • तरीकों अंकन कदम के रूप में परीक्षण का मामला अंदर निष्पादित: @Step (निजी तरीकों के लिए भी काम करता है)
  • संलग्नक: @At tachment (नाम = "पृष्ठ स्क्रीनशॉट", type = "छवि/png")

उनके अधिक जानकारी के लिए wiki और example project देखें।

8

JUnit 5@DisplayName के साथ प्रत्येक परीक्षण को एनोटेट करने का एक तरीका है। घोषित परीक्षण कक्षाओं में text, special characters और emojis हो सकते हैं।

प्रत्येक परीक्षण पर घोषित पाठ test runners और test reports द्वारा दिखाई देता है।


Javadoc का कहना है:

public @interface DisplayName

@DisplayName एनोटेट परीक्षण वर्ग या परीक्षण विधि की कस्टम प्रदर्शन नाम घोषित करने के लिए प्रयोग किया जाता है। प्रदर्शन नाम आम तौर पर आईडीई में परीक्षण रिपोर्टिंग के लिए उपयोग किए जाते हैं और उपकरण बनाते हैं और इसमें रिक्त स्थान, विशेष वर्ण और यहां तक ​​कि इमोजी भी हो सकती है।

और User Guide:

import org.junit.gen5.api.DisplayName; 
import org.junit.gen5.api.Test; 

@DisplayName("A special test case") 
class DisplayNameDemo { 

    @Test 
    @DisplayName("Custom test name containing spaces") 
    void testWithDisplayNameContainingSpaces() { 
    } 

    @Test 
    @DisplayName("╯°□°)╯") 
    void testWithDisplayNameContainingSpecialCharacters() { 
    } 

    @Test 
    @DisplayName("") 
    void testWithDisplayNameContainingEmoji() { 
    } 
} 
+0

Thanx लेकिन JUnit 5 उत्पादन में उपयोग करने के लिए बहुत नया है। – Akceptor

+1

@Accceptor सच है। लेकिन मैं सोच रहा था, सवाल 7 साल का है - शायद 7 वर्षों में यह सही जवाब हो सकता है: डी – Patrick

+1

सम्मानित। सिर्फ इसलिए कि ऐसा लगता है कि जुनीट 5 एकमात्र उपलब्ध समाधान है – Akceptor

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