我正在使用 Spring 2.3.8 应用程序中的 ArchUnit 0.18 和 archunit-junit5。由于某种原因我找不到,ImportOption.DoNotIncludeTests.class
没有按预期工作,并且还包括测试类。我只能通过在这些测试类中注释代码来让 ArchUnit 测试工作。
ArchUnit 测试是:
import com.tngtech.archunit.core.domain.JavaClasses;
import com.tngtech.archunit.core.importer.ClassFileImporter;
import com.tngtech.archunit.core.importer.ImportOption;
import com.tngtech.archunit.junit.AnalyzeClasses;
import org.junit.jupiter.api.Test;
@AnalyzeClasses(packages = "com.petproject", importOptions = { ImportOption.DoNotIncludeTests.class })
class ArchitectureTest {
@Test
public void some_architecture_rule() {
JavaClasses classes = new ClassFileImporter().importPackages("com.petproject");
layeredArchitecture()
.layer("Controller").definedBy("com.petproject.controller")
.layer("Validators").definedBy("com.petproject.validations.validators")
.layer("Service").definedBy("com.petproject.service")
.layer("Persistence").definedBy("com.petproject.repository")
.whereLayer("Controller").mayNotBeAccessedByAnyLayer()
.whereLayer("Service").mayOnlyBeAccessedByLayers("Controller", "Validators")
.check(classes);
}
}
为了不考虑测试课程,我是否错过了一些步骤?
谢谢!