Java ArchUnit测试导入不包括不工作的测试

Java ArchUnit测试导入不包括不工作的测试,java,spring,testing,archunit,Java,Spring,Testing,Archunit,我使用的是Spring2.3.8应用程序中的ArchUnit0.18和ArchUnit-junit5。由于某些原因,我找不到,ImportOption.DoNotIncludeTests.class未按预期工作,还包括测试类。我只能通过注释这些测试类中的代码来让ArchUnit测试工作 单元测试是: import com.tngtech.archunit.core.domain.JavaClasses; 导入com.tngtech.archunit.core.importer.ClassFile

我使用的是Spring2.3.8应用程序中的ArchUnit0.18和ArchUnit-junit5。由于某些原因,我找不到,
ImportOption.DoNotIncludeTests.class
未按预期工作,还包括测试类。我只能通过注释这些测试类中的代码来让ArchUnit测试工作

单元测试是:

import com.tngtech.archunit.core.domain.JavaClasses;
导入com.tngtech.archunit.core.importer.ClassFileImporter;
导入com.tngtech.archunit.core.importer.ImportOption;
导入com.tngtech.archunit.junit.AnalyzeClasses;
导入org.junit.jupiter.api.Test;
@分析类(packages=“com.petproject”,importOptions={ImportOption.DoNotIncludeTests.class})
类架构测试{
@试验
public void some_architecture_rule(){
JavaClasses=new ClassFileImporter().importPackages(“com.petproject”);
分层架构()
.layer(“Controller”).definedBy(“com.petproject.Controller”)
.layer(“Validators”).definedBy(“com.petproject.validations.Validators”)
.layer(“服务”).definedBy(“com.petproject.Service”)
.layer(“Persistence”).definedBy(“com.petproject.repository”)
.whereLayer(“控制器”).maybeaccessedbyanylayer()
.whereLayer(“服务”).mayOnlyBeAccessedByLayers(“控制器”、“验证器”)
.检查(课程);
}
}
为了不考虑测试类,我是否错过了一些步骤


谢谢

注释
@AnalyzeClasses(packages=“com.petproject”,importOptions={ImportOption.DoNotIncludeTests.class})
在这种情况下不进行计算。首先,用JUnit的
@test
而不是ArchUnit的
@ArchTest
对测试方法进行注释。第二,根据测试结果检查规则

JavaClasses classes=new ClassFileImporter().importPackages(“com.petproject”);
正如你已经发现的,你可以用

JavaClasses classes=new ClassFileImporter().withImportOption(ImportOption.Predefined.don_NOT_INCLUDE_TESTS).importPackages(“com.petproject”);
或者,您可以将测试设置更改为

@AnalyzeClasses(packages=“com.petproject”,importOptions={ImportOption.DoNotIncludeTests.class})
类架构测试{
@拱门试验
公共静态无效某些\u架构\u规则(JavaClasses){
检查(类);
}
//或者作为字段而不是方法
@拱门试验
公共静态ArchRule某些\u架构\u规则=。。。
}

我刚刚试过使用JavaClasses classes=new ClassFileImporter()。使用ImportOption(ImportOption.Predefined.DO_NOT_INCLUDE_TESTS)。importPackages(“com.petproject”);现在它工作了,你如何运行你的测试?