Контейнер STATE является ошибкой, когда результат теста имеет сбой - PullRequest
0 голосов
/ 30 октября 2019

Я настроил среду Kubernetes локально, используя minikube. Я создаю работу, которая имеет 3 контейнера.

  • Hub
  • Chrome
  • Приложение (Selenium-TestNG)

Когда я применяю / создаю задание, которое настроит Hub/ хром / App. Выполните тесты селена.

Если все тесты пройдены успешно, вы увидите статус Контейнера, как показано ниже

Container List after completion

Результат из приложения webAutomation1 log

Вышеуказанное соответствует ожиданиям. Хорошо выглядит с точки зрения списка контейнеров

Теперь, если мы завершили приложение (выполнение тестов) с некоторыми сбоями, как показано ниже

fail log

Тогда мой список контейнеров покажет его как ошибку error container

Я использую ITestListenr для записи логов в консоль на данный момент. Что это делает контейнер STATE, чтобы включить Ошибка.? Есть ли что-то, чего я не вижу в плане интеграции между контейнером и приложением?

Буду очень признателен, если кто-нибудь поможет мне с этим.

1 Ответ

1 голос
/ 30 октября 2019

Согласно Коды выхода TestNG :

Когда TestNG завершает выполнение, он завершается с кодом возврата. Этот код возврата можно проверить, чтобы получить представление о природе отказов (если они были). В следующей таблице приведены различные коды выхода, которые в настоящее время использует TestNG.

/**
 * |---------------------|---------|--------|-------------|------------------------------------------|
 * | FailedWithinSuccess | Skipped | Failed | Status Code | Remarks                                  |
 * |---------------------|---------|--------|-------------|------------------------------------------|
 * | 0                   | 0       | 0      | 0           | Passed tests                             |
 * | 0                   | 0       | 1      | 1           | Failed tests                             |
 * | 0                   | 1       | 0      | 2           | Skipped tests                            |
 * | 0                   | 1       | 1      | 3           | Skipped/Failed tests                     |
 * | 1                   | 0       | 0      | 4           | FailedWithinSuccess tests                |
 * | 1                   | 0       | 1      | 5           | FailedWithinSuccess/Failed tests         |
 * | 1                   | 1       | 0      | 6           | FailedWithinSuccess/Skipped tests        |
 * | 1                   | 1       | 1      | 7           | FailedWithinSuccess/Skipped/Failed tests |
 * |---------------------|---------|--------|-------------|------------------------------------------|
 */

Ваш контейнер, вероятно, использует TestNG в качестве основного процесса, и любой тест, который не считается Passed tests (т. Е. код выхода, отличный от 0), приведет к тому, что модуль будет иметь состояние завершения / ошибки.

Это можно подтвердить с помощью Определение причины отказа модуля .

, например:Вы можете проверить свое состояние стручка;результат будет примерно таким:

$ kubectl get my-pod-name -o=json | jq .status.containerStatuses[].state
{
  "terminated": {
    "containerID": "docker://9bc2497ec0d2bc3b1b62483c217aaaaa1027102a5f7ff1688f47b94254",
    "exitCode": 1,
    "finishedAt": "2019-10-28T02:00:10Z",
    "reason": "Error",
    "startedAt": "2019-10-28T02:00:05Z"
  }
}

и проверьте, совпадает ли код выхода с вашим кодом состояния TestNG.

...