我使用嵌套类来访问 JUnit 测试中的私有成员。它们总是被命名为“TestProxy”。
我想在构建时使用 maven2 删除它们,而不是将其包含到 jar 文件中。
- 有没有配置选项?
- 可以用插件完成吗?如果是这样,原型会很好!;-)
谢谢
编辑:为什么使用私有方法?我需要从 3rd 方系统注入数据,而每次 JUnit 测试运行都不能调用这些数据。而且我真的不想要私有数据的公共设置器,或者迟早另一个程序员可能会滥用它。
我使用嵌套类来访问 JUnit 测试中的私有成员。它们总是被命名为“TestProxy”。
我想在构建时使用 maven2 删除它们,而不是将其包含到 jar 文件中。
谢谢
编辑:为什么使用私有方法?我需要从 3rd 方系统注入数据,而每次 JUnit 测试运行都不能调用这些数据。而且我真的不想要私有数据的公共设置器,或者迟早另一个程序员可能会滥用它。
答案如下:可以用maven配置。只需将以下代码插入到 build/plugins 部分的文件 pom.xml 中:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/*$TestProxy*</exclude>
</excludes>
</configuration>
</plugin>
@查看文档:http ://maven.apache.org/plugins/maven-jar-plugin/jar-mojo.html#excludes
对于这类事情,您可能会发现 ant 脚本是第一个调用端口,而不是专用的自定义插件。让 Maven 在构建过程中运行任意 ant 脚本很简单。比创建插件更简单。 这个问题很好地描述了如何在 Maven 的process-sources
构建执行阶段运行 ant 脚本。
稍有不同的是,我希望您会得到一堆答案,询问您为什么要对私有可访问的班级成员进行单元测试...