当前位置: 首页 > 知识库问答 >
问题:

如何在ArchUnit规则中排除类?

袁法
2023-03-14

共有1个答案

黄信厚
2023-03-14

考虑您已经导入了所有的类:

JavaClasses classes = new ClassFileImporter().importPackages("org.example");

然后,您通常会根据ArchRule检查所有这些类,不管它是类规则还是体系结构规则:

ArchRule rule = classes()
    .that().areAnnotatedWith(Service.class)
    .should().haveSimpleNameEndingWith("Service");

rule.check(classes);

要从规则中排除类,可以筛选并将筛选的JavaClasses传递给规则:

import static com.tngtech.archunit.base.DescribedPredicate.not;
import static com.tngtech.archunit.core.domain.JavaClass.Predicates.equivalentTo;
import static com.tngtech.archunit.lang.conditions.ArchPredicates.are;

JavaClasses allExceptMain = classes.that(are(not(equivalentTo(Main.class))));
rule.check(allExceptMain);
import static com.tngtech.archunit.base.DescribedPredicate.not;
import static com.tngtech.archunit.core.domain.JavaClass.Predicates.belongToAnyOf;

JavaClasses allExceptMain = classes.that(not(belongToAnyOf(Main.class)));
rule.check(allExceptMain);
 类似资料:
  • 在我的根项目中,我有两个子项目具有这种包结构。 在项目1中,我有一个用大规定义的类,就像这样 问题是,如果我运行该测试,它也会分析项目2中的所有内容。我如何排除包com.app.api?

  • 在ArchUnit-Test中,是否有可能从分层测试条件中排除特定的类? 希望我能说清楚...

  • 我的主托管域需要ssl,所以htaccess将每个url请求转换为https。 但我在同一个托管另一个域上使用cpanel dir结构(“public_html/addon domain.com”) htaccesspublic_html是我唯一能配置的。因此,当用户键入www.addondoamin.com或没有www时,htaccess将不会做任何事情。o/w,我得到了许多错误和addon域镜

  • 问题内容: 我分别在端口8006和8007上托管特殊的HTTP和HTTPS服务。我使用iptables来“激活”服务器;即路由传入的HTTP和HTTPS端口: 这就像一个魅力。但是,我想创建另一个脚本来再次禁用服务器。也就是说,将iptables恢复到运行上述行之前的状态。但是我很难弄清楚删除这些规则的语法。似乎唯一起作用的是完全冲洗: 但这也会删除其他不希望的iptables规则。 问题答案:

  • 根据4.12发行说明,可以使用@Rule和@ClassRule对测试类的静态成员进行注释: 同时使用@Rule和@ClassRule注释的静态成员现在被认为是有效的。这意味着可以使用单个规则在类之前/之后(例如设置/拆除外部资源)和测试之间(例如重置外部资源)执行操作, 我想使用此功能在文件中所有测试开始时初始化资源,在每个测试之间对资源进行一些清理,并在所有测试完成后将其丢弃。此资源当前由扩展E

  • 我有以下解析器规则: 和以下lexer规则: 有了上面的规则,我想能够写出下面的代码: