Missing org.junit.jupiter.params from JUnit5

南笙酒味 提交于 2019-12-08 15:29:31

问题


I am trying to add parameterized tests into my Java program. I found the examples for JUnit 5, which I do have included.

https://blog.codefx.org/libraries/junit-5-parameterized-tests/

The issue is I cannot add @ParameterizedTest because the namespace is missing. Idk why or how.

The documentation page clearly states it is in org.junit.jupiter.params, but I do not have that.

To give you an idea of my code:

import org.junit.jupiter.api.Test;

import java.util.Arrays;
import java.util.Collection;

import static org.junit.jupiter.api.Assertions.*;

class SubsetPrinterTest
{
    // https://blog.codefx.org/libraries/junit-5-parameterized-tests/

    static Collection<Object[]> makeSetData()
    {
        return Arrays.asList(new Object[][]
        {
                {1, new char[]{'1'}},
                {2, new char[]{'1', '2'}},
                {3, new char[]{'1', '2', '3'}},
                {4, new char[]{'1', '2', '3', '4'}},
                {5, new char[]{'1', '2', '3', '4', '5'}}
        });
    }

    // This should be a parameterized test using the makeSetData.
    @Test
    void makeSet()
    {
        // Arrange
        SubsetPrinter subsetPrinter = new SubsetPrinter();

        // Act
        char[] set = SubsetPrinter.MakeSet(5);

        // Assert
        assertArrayEquals(set, new char[]{'1', '2', '3', '4', '5'});
        assertEquals(set.length, 5);
    }
}

回答1:


You project class-path has to include a version of junit-jupiter-params-xxx.jar, like junit-jupiter-params-5.0.0.jar from http://central.maven.org/maven2/org/junit/jupiter/junit-jupiter-params/5.0.0/

The blog post from codefx.org you link to says (edited to the current 5.0.0 release):

Getting started with parameterized tests is pretty easy but before the fun can begin you have to add the following dependency to your project:

Group ID: org.junit.jupiter
Artifact ID: junit-jupiter-params
Version: 5.0.0

Either download and add it manually, or if you're using a build tool with dependency management (Gradle, Maven, ...) configure the build script (build.gradle, pom.xml, ...) accordingly.

Find some generic samples here: https://github.com/junit-team/junit5-samples

Starting with version 5.4.0-M1 JUnit Jupiter provides an aggregator artifact that bundles all available Jupiter-defining artifacts for easy consumption. See https://sormuras.github.io/blog/2018-12-26-junit-jupiter-aggregator.html for details.




回答2:


Add the following dependency in pom.xml. jupiter API [Junit 5] approaches modules as plugins, each of on has to be deliberately added,

<dependency>
  <groupId>org.junit.jupiter</groupId>
  <artifactId>junit-jupiter-params</artifactId>
  <version>${junit.version}</version>
  <scope>test</scope>
</dependency>

More on: https://mvnrepository.com/artifact/org.junit.jupiter



来源:https://stackoverflow.com/questions/46290916/missing-org-junit-jupiter-params-from-junit5

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!