Не удалось выполнить цель org.apache.maven.plugins: maven-surefire-плагин для проекта maven в Intellij

#maven #intellij-idea

#maven #intellij-idea

Вопрос:

Сегодня я изучаю MyBatis и пытаюсь создать первый проект, но я получил следующую ошибку. Я перепробовал много различных возможных онлайн-решений, но они не сработали. Похоже, решение состоит в том, чтобы добавить maven-surefire-plugin, но он также не работает. Я отчаянно надеюсь найти проблему.

Кто-нибудь может помочь мне взглянуть? Я действительно ценю это!

исключение

 [INFO] ---------------------< org.example:Day01_MyBatis >----------------------
[INFO] Building Day01_MyBatis 1.0.0-snapshot
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ Day01_MyBatis ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 3 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ Day01_MyBatis ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ Day01_MyBatis ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:Users780892IdeaProjectsDay01_MyBatissrctestresources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ Day01_MyBatis ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to C:Users780892IdeaProjectsDay01_MyBatistargettest-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.22.2:test (default-cli) @ Day01_MyBatis ---
[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.852 s
[INFO] Finished at: 2020-10-13T19:37:22-06:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test (default-cli) on project Day01_MyBatis: No tests were executed!  (Set -DfailIfNoTests=false to ignore this error.) -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
  

pom.xml

  <groupId>org.example</groupId>
    <artifactId>Day01_MyBatis</artifactId>
    <version>1.0.0-snapshot</version>
    <packaging>jar</packaging>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
    
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <testFailureIgnore>true</testFailureIgnore>
            </configuration>
            <version>2.22.2</version>
        </plugin>
    </plugins>
</build>


    <dependencies>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.12</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.6</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>**strong text**
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.20</version>
        </dependency>
    </dependencies>

  

Тестовый класс

 public class MyBatisTest {
    public static void main(String[] args) throws IOException {


        //1. read the configuration file
        InputStream is= Resources.getResourceAsStream("SqlMapConfig.xml");
        //2. create SqlSessionFactory
        SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
        SqlSessionFactory factory=builder.build(is);
        //3. use SqlSessionFactory to create an object
        SqlSession sqlsession=factory.openSession();
        //4. use SqlSession create Dao interface
        UserDao dao=sqlsession.getMapper(UserDao.class);
        //5. call the method
        List<User> users=dao.findAll();
        for(User user:users)
        {
            System.out.println(user);
        }
        //6. release resource
        sqlsession.close();
        is.close();
    }
}
  

Ответ №1:

Ваш тестовый класс на самом деле не является тестовым классом в смысле модульного тестирования Java, а основным классом. Вы хотите

  1. проводить модульное тестирование с помощью JUnit?
    Затем замените свой основной метод на тестовый метод с аннотацией junit @Test. Смотрите также здесь: https://github.com/junit-team/junit4/wiki/Getting-started

  2. просто выполните свой main-метод?
    Затем удалите junit-зависимость и surefire-plugin из pom.xml .