001/**
002 * Powerunit - A JDK1.8 test framework
003 * Copyright (C) 2014 Mathieu Boretti.
004 *
005 * This file is part of Powerunit
006 *
007 * Powerunit is free software: you can redistribute it and/or modify
008 * it under the terms of the GNU General Public License as published by
009 * the Free Software Foundation, either version 3 of the License, or
010 * (at your option) any later version.
011 *
012 * Powerunit is distributed in the hope that it will be useful,
013 * but WITHOUT ANY WARRANTY; without even the implied warranty of
014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
015 * GNU General Public License for more details.
016 *
017 * You should have received a copy of the GNU General Public License
018 * along with Powerunit. If not, see <http://www.gnu.org/licenses/>.
019 */
020package ch.powerunit;
021
022import java.lang.annotation.Documented;
023import java.lang.annotation.ElementType;
024import java.lang.annotation.Retention;
025import java.lang.annotation.RetentionPolicy;
026import java.lang.annotation.Target;
027
028/**
029 * Mark a method as being a test method.
030 * <p>
031 * This method must be public, non static, 0-arg, void return.
032 *
033 * @author borettim
034 *
035 */
036@Documented
037@Retention(RetentionPolicy.RUNTIME)
038@Target(ElementType.METHOD)
039public @interface Test {
040    /**
041     * Define an alternative name for the test.
042     * <p>
043     * If not used, the test name will be based on the method name. In case of
044     * parameterized test, the name will be formatted in the same way that the
045     * {@link Parameters @Parameters} annotation will be.
046     * 
047     * @return the name
048     * @see java.text.MessageFormat#format(String, Object...) The formatter used
049     *      for parameterized test.
050     */
051    String name() default "";
052}