TGViewer
QArelia | Блог про тестирование, QA 🧩 QArelia | Блог про тестирование, QA 🧩 @qa_relia · 957 subscribers
Post #100 524
Как поддерживать архитектуру автотестов?

Когда-то наткнулся на такую библиотеку ArchUnit (https://www.archunit.org).
С помощью неё можно можно писать unit-тесты для вашего фреймворка автотестов, например:
@Test
public void checkLayers() {
    layeredArchitecture()
        .layer("Tests")
        .definedBy("..tests..")

        .layer("Steps")
        .definedBy("..steps..")

        .layer("Pages")
        .definedBy("..pages..")
       
        .whereLayer("Tests")
        .mayNotBeAccessedByAnyLayer()

        .whereLayer("Steps")
        .mayOnlyBeAccessedByLayers("Tests")

        .whereLayer("Pages")
        .mayOnlyBeAccessedByLayers("Steps")
        .check(classes);
}

В данном примере проверяется, что слой тестов Tests не вызывается из других слоёв, слой Steps вызывается только из Tests и слой Pages вызывается только из Steps. Таким образом проверяется простая вложенная структура проекта.

Рассмотрим ещё один пример:
@Test
public void checkSteps() {
    methods()
        .that().arePublic()
        .and()
        .areDeclaredInClassesThat()
        .resideInAPackage("..steps..")
        .should()
        .beAnnotatedWith(Step.class)
        .check(classes);
}

Здесь мы для всего пакета steps у публичных методов проверяем наличие аллюровской аннотации @Step
Как по мне это полезная проверка, чтобы в отчётиках всегда было видно описание шага)

⭐️ Преимущества использования ArchUnit:
— поддержание архитектурных стандартов на всём протяжении проекта
– упрощение рефакторингов
— повышение качества кода

💡 Из особенностей, на которые стоит обратить внимание:
— скорость работы (чем больше проект, тем нужно больше времени на анализ всех файлов)
— сложности при использовании в связке с Groovy (данная библиотека предназначена только для Java, но при определённом желании потратить свои силы и нервы можно настроить и для Groovy)

Есть также аналоги на других языках:

👩‍💻 pytestarch

👩‍💻 konsist

🟪 NetArchTest

#автотесты #архитектура #ArchUnit
  • 👍 2
  • 🔥 1
More from @qa_relia
  1. Aug 5, 2025🔹 ISTQB выпустила новую сертификацию — CT‑GenAI (Certified Tester – Testing with Generati…
  2. Jul 31, 2025❇️ Как я стал QA лидом и что теперь делаю каждый день Часть 1. История моего перехода в QA…
  3. Jul 13, 2025🔥 Ребят, я очень давно не писал, потому что... начал работать в новой роли QA лида) 🤔 Я…
  4. Mar 8, 2025🌷 Поздравляю с 8 марта! Дорогие наши тестировщицы, багоискательницы и хранительницы качес…
  5. Feb 27, 2025👩‍💻 Про код-ревью автотестов Код автотестов должен обязательно проходить код-ревью, а то…
  6. Feb 22, 2025🗂 Папка с лучшими Telegram каналами про QA 🥳 В том году мой канал добавили супер-полезну…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →