Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.
Если вы выполнилиmvn test
илиили выполнить другоеmavenЗаказ При запуске тестового примера,Вы уже использовали егоmaven-surefire-plugin
Понятно。maven-surefire-plugin
даmavenПлагин, выполняющий тестовые случаи в,Если конфигурация не отображается, будет использоваться конфигурация по умолчанию.。этого плагинаsurefire:test
Заказ Будет привязано по умолчаниюmavenисполняемый файлtest
этап。
Каковы этапы жизненного цикла Maven? [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes,
test
, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
Если у maven уже есть конфигурация maven-surefire-plugin по умолчанию, нужно ли нам еще знать конфигурацию maven-surefire-plugin? Ответ: да. Хотя maven-surefire-plugin имеет конфигурацию по умолчанию, когда нам нужно изменить некоторые стратегии выполнения тестов, нам необходимо перенастроить этот плагин.
Самый простой метод настройки — не настраивать и не объявлять плагин.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19</version>
</plugin>
В это время maven-surefire-plugin будет следовать следующей логике, чтобы найти версию JUnit и выполнить тестовый пример.
if the JUnit version in the project >= 4.7 and the parallel attribute has ANY value
use junit47 provider
if JUnit >= 4.0 is present
use junit4 provider
else
use junit3.8.1
Конечно, если вы явно используете JUnit 4.7 и выше, вы можете явно объявить:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.19</version>
</dependency>
</dependencies>
</plugin>
Для версий от JUnit4.0 (включительно) до JUnit4.7 (эксклюзивно) объявите это следующим образом:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit4</artifactId>
<version>2.19</version>
</dependency>
</dependencies>
</plugin>
Для версий от JUnit3.8 (включительно) до JUnit4.0 (эксклюзивно) объявите это следующим образом:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit3</artifactId>
<version>2.19</version>
</dependency>
</dependencies>
</plugin>
Surefire не поддерживает версии JUnit ниже 3.8. Рекомендуется использовать последнюю версию JUnit — 4.12.
<dependencies>
[...]
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
[...]
</dependencies>
Для примера в этой статье мы используем Junit4.12.
Теперь мы подготавливаем два класса: тестируемый класс и тестовый пример. Структура каталогов следующая.
Теперь готовим простой класс.
package com.qyf404.learn.maven;
public class App {
public int add(int a, int b) {
return a + b;
}
public int subtract(int a, int b) {
return a - b;
}
}
Создайте еще один тестовый пример.
package com.qyf404.learn.maven;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class AppTest {
private App app;
@Before
public void setUp() {
app = new App();
}
@Test
public void testAdd() throws InterruptedException {
int a = 1;
int b = 2;
int result = app.add(a, b);
Assert.assertEquals(a + b, result);
}
@Test
public void testSubtract() throws InterruptedException {
int a = 1;
int b = 2;
int result = app.subtract(a, b);
Assert.assertEquals(a - b, result);
}
@After
public void tearDown() throws Exception {
}
}
Выполнять тестовые примеры с помощью maven очень просто. напрямуюmvn test
Вот и все.Обычно мы выполняемmavenПакет Заказmvn package
впередmavenбудет выполнено по умолчаниюtest
Заказ.
qyfmac$ mvn test
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building learn-maven 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ learn-maven ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /Users/qyfmac/git/learn-maven/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ learn-maven ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 1 source file to /Users/qyfmac/git/learn-maven/target/classes
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ learn-maven ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /Users/qyfmac/git/learn-maven/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ learn-maven ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 2 source files to /Users/qyfmac/git/learn-maven/target/test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.19:test (default-test) @ learn-maven ---
[WARNING] The parameter forkMode is deprecated since version 2.14. Use forkCount and reuseForks instead.
[INFO] Surefire report directory: /Users/qyfmac/git/learn-maven/target/surefire-reports
[INFO] Using configured provider org.apache.maven.surefire.junit4.JUnit4Provider
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.qyf404.learn.maven.AppTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec - in com.qyf404.learn.maven.AppTest
Results :
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.622 s
[INFO] Finished at: 2015-12-01T11:36:04+08:00
[INFO] Final Memory: 14M/228M
[INFO] ------------------------------------------------------------------------
qyfmac$
Фактически, мы обнаружим, что ключевым содержимым по-прежнему является JUnit, который служит лишь вызывающей стороной для вызова этих тестовых случаев.
Давайте изучим это позжеmaven-surefire-plugin
Больше информации об этом плагине,Большинство из них связаны с конфигурацией.
На работе во многих случаях мы не хотим выполнять тестовые примеры при упаковке. Тестовые примеры могут быть не завершены или тестовые примеры могут повлиять на данные базы данных. Есть три способа пропустить процесс выполнения тестового сценария.
Объявите пропущенные тестовые случаи в конфигурации конфигурации плагина.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.19</version>
</dependency>
</dependencies>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
Объявить пропущенные тестовые случаи в конфигурации свойств.
<properties>
<maven.test.skip>true</maven.test.skip>
</properties>
или
<properties>
<skipTests>true</skipTests>
</properties>
Вы можете объявить пропуск тестовых случаев при выполнении команд maven.
qyfmac$ mvn test -Dmaven.test.skip=true
или
qyfmac$ mvn test -DskipTests=true
Во-первых, есть две ситуации,Что-то вродеда КонфигурацияskipTests
,Что-то вродеда Конфигурацияmaven.test.skip
(Действительно ужасно,Пунктов декларирования всего три.,Также придумал два имени переменных,Всего 5 ситуаций).
skipTests
, Конфигурация конфигурации имеет наивысший приоритет, за ней следует конфигурация в команде. Конфигурация свойств самая низкая.
configuration > Заказ > properties
maven.test.skip
,Конфигурация в Заказе имеет наивысший приоритет., Конфигурация свойств самая низкая.
Прямо сейчасЗаказ > properties
skipTests
иmaven.test.skip
Один настроен на Понятноtrue,тогда пропусти тестовый пример.
Прямо сейчасskipTests||maven.test.skip
Решатьда Пропускать ли тестовые случаиосуществлять.
Во многих случаях после того, как мы напишем тестовый пример, мы хотим немедленно запустить его, чтобы увидеть выполнение. Если вы используете IDE для разработки, обычно существует метод прямого запуска тестового примера. Но если вы используете команду maven для этого. Чтобы добиться того же эффекта, вам нужно Добавлены некоторые параметры команды.
Например, давайте добавим еще один тестовый пример App2Test.java.
package com.qyf404.learn.maven;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@RunWith(JUnit4.class)
public class App2Test {
private App app;
@Before
public void setUp() {
app = new App();
}
@Test
public void testAdd() throws InterruptedException {
int a = 1;
int b = 2;
int result = app.add(a, b);
Thread.currentThread().sleep(1000);
Assert.assertEquals(a + b, result);
}
@After
public void tearDown() throws Exception {
}
}
Непосредственный запуск теста mvn выглядит следующим образом: он выполняет все тестовые примеры.
qyfmac$ mvn test
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building learn-maven 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
...
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.qyf404.learn.maven.App2Test
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.004 sec - in com.qyf404.learn.maven.App2Test
Running com.qyf404.learn.maven.AppTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec - in com.qyf404.learn.maven.AppTest
Results :
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.773 s
[INFO] Finished at: 2015-12-01T14:57:00+08:00
[INFO] Final Memory: 9M/156M
[INFO] ------------------------------------------------------------------------
Теперь мы используем Заказmvn test -Dtest=App2Test
Укажите исполнениеApp2Test.
qyfmac$ mvn test -Dtest=App2Test
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building learn-maven 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
...
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.qyf404.learn.maven.App2Test
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.003 sec - in com.qyf404.learn.maven.App2Test
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.061 s
[INFO] Finished at: 2015-12-01T14:58:59+08:00
[INFO] Final Memory: 9M/156M
[INFO] ------------------------------------------------------------------------
-Dtest
Параметрыдадоступныйвыражениеиз.
mvn test -Dtest=App2Test,AppTest
.
mvn test -Dtest=*2Test
,mvn test -Dtest=???2Test
.
mvn test -Dtest=*Test#testAdd
.
mvn test -Dtest=com/qyf404/learn/maven/*
.
Сказано выше,При выполнении Заказа вы можете указать, какие тестовые случаи выполнять.,Фактически, его также можно настроить в pom.xml. Например, чтобы при упаковке выполнялся тестовый пример AppTest, но не выполнялся App2Test, его можно настроить следующим образом.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.19</version>
</dependency>
</dependencies>
<configuration>
<!--Конфигурацияда Пропускать ли тестовые случаиосуществлять-->
<!--<skipTests>true</skipTests>-->
<includes>
<include>**/AppTest.java</include>
</includes>
<excludes>
<exclude>**/App2Test.java</exclude>
</excludes>
</configuration>
</plugin>
<include>
и<exclude>
里из Конфигурация方式и-Dtest
Выражения можно настроить следующим образом::
<include>AppTest</include>
.
<include>AppTest.java</include>
.
<include>AppTest.class</include>
.
<include>com/qyf404/learn/maven/AppTest.class</include>
.
<include>com/qyf404/learn/maven/AppTest.class,App2Test</include>
.
<include>!*2Test.class</include>
.
<include>**/*Test</include>
.
<include>**/???Test</include>
.
%regex[expr]
выражение<include>%regex[com.qyf404.learn.maven.*Test.class]</include>
.
%regex[expr]
выражение<include>%regex[com.qyf404.*.*Test.class]</include>
.
%regex[expr]
выражение<include>%regex[com.qyf404.[learn|test].*Test.class]</include>
,Квадратные скобки посередине обозначают концепцию или,Это случай обучения или тестирования.%regex[expr]
выражение<include>!%regex[com.qyf404.*.*2Test.class]</include>
,Восклицательный знак здесь означает отрицание,То есть включены тестовые примеры, которые не соответствуют выражению.%regex[expr]
выражение<include>%regex[.*2Test.class]</include>
,Эта конфигурация игнорирует префикс пакета.,Это можно понимать как сопоставление полного имени класса задом наперед.%regex[expr]
выражение Лучше всего, чтобы в нем не было никаких вопросительных знаков.[?],И что соответствует полному имени класса.<include>*Test#testAdd</include>
.
%regex[expr]
конкретные методы,这种Конфигурацияда错误из<include>%regex[com.qyf404.learn.maven.*Test.java]</include>
.
<include>
и<exclude>
,Последний выполненный тестовый пример является пересечением этих двух.Мы сказали выше,Можно настроить<include>
Эта информация используется для контроля выполнения тестовых случаев.,нодаJUnitЕсть заметка в@Category
Группы тестовых случаев можно группировать и отмечать,При использовании maven для выполнения тестовых случаев,Мы также можем использовать разметку этой аннотации,чтобы определить, какой набор тестовых примеров выполнить.
Например, наш тестовый пример выглядит так:
package com.qyf404.learn.maven;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.categories.Category;
public class AppTest {
private App app;
@Before
public void setUp() {
app = new App();
}
@Test
@Category(com.qyf404.learn.maven.FastTests.class)
public void testAdd() throws InterruptedException {
int a = 1;
int b = 2;
int result = app.add(a, b);
System.out.println("---" + Thread.currentThread().getName());
Assert.assertEquals(a + b, result);
}
@Test()
@Category(com.qyf404.learn.maven.SlowTests.class)
public void testSubtract() throws InterruptedException {
int a = 1;
int b = 2;
int result = app.subtract(a, b);
System.out.println("---" + Thread.currentThread().getName());
Assert.assertEquals(a - b, result);
}
@After
public void tearDown() throws Exception {
}
}
Это конфигурация в pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19</version>
<configuration>
<groups>com.qyf404.learn.maven.SlowTests</groups>
</configuration>
</plugin>
в исполненииmvn test
час,тогда будет выполнена только разметка@Category(com.qyf404.learn.maven.SlowTests.class)
тестовые примеры.
При упаковке все тестовые примеры будут выполнены по умолчанию, а затем будет выдан статистический результат выполнения, как показано ниже:
Results :
Tests run: 3, Failures: 1, Errors: 0, Skipped: 0
Во многих случаях мы надеемся, что тестовые примеры не завершатся неудачей до того, как они будут упакованы. Если упаковка не удалась, нам необходимо немедленно прекратить выполнение других тестовых примеров. Чтобы удовлетворить этому требованию, нам нужно добавить некоторые параметры конфигурации.
<configuration>
<skipAfterFailureCount>1</skipAfterFailureCount>
</configuration>
цифры внутри1
Указывает, что если тестовый пример не может быть выполненили Произошло исключениечас,Пропустите другие последующие тестовые случаи.На самом деле это число всего лишьда一个大于零из数Вот и все.表达из意思Сразуда Когда естьN
Тестовые случаи не удалось выполнитьилианомальныйчас,Пропустите другие последующие тестовые случаи.
Когда один из наших тестовых примеров тестирует удаленный сервис, в некоторых случаях выполнение тестового примера может завершиться неудачей из-за проблем окружающей среды (например, сети), но это не проблема программы. Другими словами, когда тестовый пример выполняется N раз. , если выполнение один раз завершилось успешно, оно считается успешным. В этот момент нам необходимо настроить параметр. Если выполнение не удалось, вариант использования будет выполнен снова.
<configuration>
<rerunFailingTestsCount>2</rerunFailingTestsCount>
</configuration>
цифры внутри2
означает, когда что-то Тестовые случаи не удалось выполнитькназад,Можно перезапустить 2 раза,Тестовый пример считается успешным, если он успешно выполнен один раз..внутри2
если бы толькода一个大于零из整数Вот и все,Указывает количество повторных попыток. Если повторная попытка произошла.,В отчете о выполнении maven будет еще один Flakes.
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.qyf404.learn.maven.App2Test
Tests run: 3, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 3.023 sec <<< FAILURE! - in com.qyf404.learn.maven.App2Test
testAdd(com.qyf404.learn.maven.App2Test) Time elapsed: 1.012 sec <<< FAILURE!
java.lang.AssertionError: expected:<2> but was:<3>
at com.qyf404.learn.maven.App2Test.testAdd(App2Test.java:32)
testAdd(com.qyf404.learn.maven.App2Test) Time elapsed: 1.006 sec <<< FAILURE!
java.lang.AssertionError: expected:<2> but was:<3>
at com.qyf404.learn.maven.App2Test.testAdd(App2Test.java:32)
Running com.qyf404.learn.maven.AppTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec - in com.qyf404.learn.maven.AppTest
Results :
Flaked tests:
com.qyf404.learn.maven.App2Test.testAdd(com.qyf404.learn.maven.App2Test)
Run 1: App2Test.testAdd:32 expected:<2> but was:<3>
Run 2: App2Test.testAdd:32 expected:<2> but was:<3>
Run 3: PASS
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Flakes: 1
Как правило, мы можем выполнять тестовые примеры непосредственно в IDE.,Иногда это случается,Непосредственное выполнение тестовых примеров в IED не представляет проблемы.,нодаиспользоватьmavenЗаказ Пакетчас Сразуосуществлятьнеудача Понятно.мы можем Заказ Присоединяйтесь-X
или--debug
чтобы распечатать дополнительную информацию журнала для устранения проблемы.Но его также можно включитьJVMпорт отладки для удаленного доступаdebug.
осуществлятьmavenЗаказmvn -Dmaven.surefire.debug test
чтобы включить режим отладки.конечно Также можно использоватьнад整из Заказуказать порт
mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 -Xnoagent -Djava.compiler=NONE" test
После выполнения команды это выглядит так:
qyfmac$ mvn -Dmaven.surefire.debug test
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building learn-maven 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ learn-maven ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /Users/qyfmac/git/learn-maven/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ learn-maven ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ learn-maven ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /Users/qyfmac/git/learn-maven/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ learn-maven ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.19:test (default-test) @ learn-maven ---
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Listening for transport dt_socket at address: 5005
Позже нам нужно будет использовать это5005
Порт для запуска локального исходного кода Понятно.
Прежде чем приступить к отладке, вам необходимо настроить IDE. Я буду использовать идею в качестве примера, чтобы объяснить, как ее настроить.
Edit Configurations...
.
Remote
.
Если тест-кейсов много и они не будут влиять друг на друга при параллельном выполнении, то мы можем настроить несколько потоков, чтобы ускорить эффективность выполнения тест-кейсов.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19</version>
<configuration>
<parallel>methods</parallel>
<threadCount>10</threadCount>
</configuration>
</plugin>
в исполнениинадmvn test
назад,будет внутриtarget
Создать отчет об испытаниях в каталоге
Всего существует два файла. В файле txt записывается сводная информация, а в файле xml — среда и состояние выполнения тестового примера, что удобно для анализа и отображения программы.
содержимое txt-файла:
-------------------------------------------------------------------------------
Test set: com.qyf404.learn.maven.AppTest
-------------------------------------------------------------------------------
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec - in com.qyf404.learn.maven.AppTest
содержимое xml-файла:
<?xml version="1.0" encoding="UTF-8"?>
<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="com.qyf404.learn.maven.AppTest" time="0.001" tests="1" errors="0" skipped="0" failures="0">
<properties>
<property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/>
<property name="sun.boot.library.path" value="/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib"/>
<property name="java.vm.version" value="24.75-b04"/>
<property name="gopherProxySet" value="false"/>
...
</properties>
<testcase name="testAdd" classname="com.qyf404.learn.maven.AppTest" time="0.001"/>
</testsuite>
Написал так много,По сутиmaven-surefire-plugin
这个插件常использоватьиз都介绍Понятно.нодаmaven-surefire-plugin
Есть гораздо больше, чем это, что не было представлено.,Просто посмотрите на его элементы конфигурации.
再加上依据测试结果展现из测试报告Сразу更多Понятно.если想更加深入Понятно解可к到Официальный сайтизучать.
Адрес github примера кода: https://github.com/qyf404/learn-maven/tree/maven-surefire-plugin.
pdfЗагрузка файла:http://pan.baidu.com/s/1c1corG8
Автор: Full stack программист, лидер стека,ПерепечаткаПожалуйста, укажите источник:https://javaforall.cn/167782.htmlИсходная ссылка:https://javaforall.cn