我写了我的第一个 ArchUnit 测试:
import static com.tngtech.archunit.library.dependencies.SlicesRuleDefinition.*;
// more non-static imports
@RunWith(ArchUnitRunner.class)
@AnalyzeClasses(packages = "my.domain.project")
public class PackageStructureTests {
@ArchTest public static final ArchRule NO_CYCLES = slices().matching("my.domain.project.(**)")
.namingSlices("package:$1").should().beFreeOfCycles();
}
问题是它还分析了测试中的类,这些类不遵循简单的依赖约束。
如何将测试限制在“生产”类?
该项目是使用 Maven 构建的,因此这些类位于不同的目录中。
将名称以“Tests”或其他名称结尾的类分开是不够的,因为有许多类不是测试,但仅存在于测试类路径中。