29 12 25
Тесты работают - запускаются из специальной кнопки - возле билд. Не совсем всё по стандарту но и это очень хорошо и удобно!
This commit is contained in:
parent
7fdc890a85
commit
43a26007d6
19
build.gradle
19
build.gradle
@ -100,3 +100,22 @@ shadowJar {
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
tasks.named('test') {
|
||||
enabled = false
|
||||
}
|
||||
|
||||
tasks.register('itCleanRun', JavaExec) {
|
||||
group = "build"
|
||||
description = "Clean data → kill 7070 → start WS → run all IT tests"
|
||||
|
||||
classpath = sourceSets.test.runtimeClasspath
|
||||
mainClass = "test.it.IT_RunAllCleanStartWsMain"
|
||||
|
||||
// пробрасываем системные флаги (по желанию)
|
||||
systemProperty "it.debug", System.getProperty("it.debug", "true")
|
||||
systemProperty "it.login", System.getProperty("it.login", "anya24")
|
||||
|
||||
dependsOn testClasses
|
||||
}
|
||||
|
||||
@ -1 +0,0 @@
|
||||
Работу с линиями
|
||||
@ -2,7 +2,6 @@ package test.it;
|
||||
|
||||
import org.junit.platform.suite.api.SelectClasses;
|
||||
import org.junit.platform.suite.api.Suite;
|
||||
import test.it.ws.*;
|
||||
|
||||
/**
|
||||
* Сьют, который запускает IT тесты строго в заданном порядке.
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
package test.it.ws;
|
||||
package test.it;
|
||||
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import test.it.utils.ItRunContext;
|
||||
import test.it.utils.JsonBuilders;
|
||||
import test.it.utils.TestConfig;
|
||||
import test.it.utils.TestLog;
|
||||
import test.it.addBlockUtils.AddBlockFlow;
|
||||
|
||||
import java.time.Duration;
|
||||
|
||||
55
src/test/java/test/it/IT_RunAllCleanStartWsMain.java
Normal file
55
src/test/java/test/it/IT_RunAllCleanStartWsMain.java
Normal file
@ -0,0 +1,55 @@
|
||||
package test.it;
|
||||
|
||||
import server.ws.WsServer;
|
||||
|
||||
public class IT_RunAllCleanStartWsMain {
|
||||
|
||||
public static void main(String[] args) {
|
||||
// 1) Гасим всё на 7070 (если ничего нет — не падаем)
|
||||
runBash("kill -9 $(lsof -t -i:7070) 2>/dev/null || true");
|
||||
|
||||
// 2) Чистим data/
|
||||
IT_CleanAllDate.main(new String[0]);
|
||||
|
||||
// 3) Стартуем WS сервер в отдельном потоке (daemon, чтобы JVM могла завершиться)
|
||||
Thread wsThread = new Thread(() -> {
|
||||
try {
|
||||
WsServer.main(new String[0]); // внутри join() -> поток будет висеть
|
||||
} catch (Throwable t) {
|
||||
t.printStackTrace(System.out);
|
||||
}
|
||||
}, "wsServer-thread");
|
||||
wsThread.setDaemon(true);
|
||||
wsThread.start();
|
||||
|
||||
// 4) Ждём, чтобы успел стартануть
|
||||
sleepMs(1000);
|
||||
|
||||
// 5) Запускаем все IT тесты (без System.exit внутри)
|
||||
int failed = IT_RunAllMain.runAll();
|
||||
|
||||
// 6) Завершаем процесс с кодом ошибок
|
||||
System.exit(failed);
|
||||
}
|
||||
|
||||
private static void runBash(String cmd) {
|
||||
try {
|
||||
Process p = new ProcessBuilder("bash", "-lc", cmd)
|
||||
.inheritIO()
|
||||
.start();
|
||||
int code = p.waitFor();
|
||||
// тут не ругаемся: команда может быть "пустой" (ничего не слушает порт)
|
||||
// а мы уже добавили "|| true"
|
||||
} catch (Exception e) {
|
||||
System.out.println("WARN: bash command failed: " + e);
|
||||
}
|
||||
}
|
||||
|
||||
private static void sleepMs(long ms) {
|
||||
try {
|
||||
Thread.sleep(ms);
|
||||
} catch (InterruptedException ignored) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2,7 +2,6 @@ package test.it;
|
||||
|
||||
import test.it.utils.ItRunContext;
|
||||
import test.it.utils.TestLog;
|
||||
import test.it.ws.IT_03_AddBlock_NoAuth;
|
||||
|
||||
/**
|
||||
* Ручной запуск всех IT тестов БЕЗ JUnit / Suite.
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package test.it.ws;
|
||||
package test.it.addBlockUtils;
|
||||
|
||||
import blockchain.BchBlockEntry;
|
||||
import blockchain.BchCryptoVerifier;
|
||||
@ -1,4 +1,4 @@
|
||||
package test.it.ws;
|
||||
package test.it.addBlockUtils;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
@ -1,4 +1,4 @@
|
||||
package test.it.ws;
|
||||
package test.it.addBlockUtils;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
Loading…
Reference in New Issue
Block a user