«Нет тестов для запуска» с целью тестирования Maven - PullRequest
0 голосов
/ 14 апреля 2019

Я использую maven версии 3.5.2 и, по-видимому, имею правильные зависимости:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.devtop</groupId>
    <artifactId>discount-calculator</artifactId>
    <version>0.1</version>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

    <dependencies>
        <!--Testing dependencies-->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.5.0-M1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.5.0-M1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>2.27.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.1.2.RELEASE</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-junit-jupiter</artifactId>
            <version>2.27.0</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M3</version>
            </plugin>
        </plugins>
    </build>
</project>

Однако, когда я запускаю mvn clean test, он не может найти никаких тестов и просто печатает:

[INFO] --- maven-surefire-plugin:3.0.0-M3:test (default-test) @ discount-calculator ---
[INFO] No tests to run.

Мои тестовые классы заканчиваются словом "Test" и снабжены соответствующими комментариями, я могу запустить их через intellij, но, похоже, у maven есть проблемы

Один из тестовых классов, которые есть у меня в пакете, находитсяв <projectDir>/src/main/test:

package com.devtop.discountcalculator.discount;

import com.devtop.discountcalculator.RuleReturnsTrue;
import org.junit.jupiter.api.Test;

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

public class RuleChainFactoryTest {

    @Test
    public void testChainRules_oneRule_exception() {
        assertThrows(IllegalArgumentException.class,
                () -> RuleChainFactory.getInstance().chainRules(new RuleReturnsTrue()));
    }

}

1 Ответ

1 голос
/ 17 апреля 2019

Maven предпочитает соглашения по конфигурации и имеет стандартную структуру каталогов. По умолчанию он ожидает тесты в src / test / java.

Проверка Введение в стандартную структуру каталогов . Значения по умолчанию определены в Super POM .

Значения по умолчанию могут быть отменены (если у вас есть для этого веские основания).

...