#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, а основным классом. Вы хотите
-
проводить модульное тестирование с помощью JUnit?
Затем замените свой основной метод на тестовый метод с аннотацией junit @Test. Смотрите также здесь: https://github.com/junit-team/junit4/wiki/Getting-started -
просто выполните свой main-метод?
Затем удалите junit-зависимость и surefire-plugin из pom.xml .