对于测试证据,我想将我写到特定目录中的所有测试工件(例如服务器调用和响应)存档。我得到了压缩目录的方法,但我没有找到合适的地方来执行它。
测试生命周期回调似乎不是正确的位置,因为@AfterAll在每个测试类之后被调用,但是存档应该在所有测试类中的所有测试终止后生成。
在阅读了诸如如何在模块中执行之前和之后分别编码一次的帖子之后?似乎没有希望在jUnit中执行调用。
我找到了一个扩展TestLauncher,但是在阅读了稀缺的留档后,这个似乎是用来从外部开始测试的。尤其是SummaryGeneratingListener在阅读后听起来对扩展很有用https://www.codota.com/web/assistant/code/rs/5c7c89fd2f7dae0001637b13#L33但是如果我把这段代码放在mavens src/test下的树中,我看不出如何只调用这个启动器,而不是所有的单个测试...
由于代码最终将在一个maven构建中运行,在这个构建中归档非常重要,所以我认为也许有可能在目标测试之后运行它。但我知道,如果测试目标中至少有一定数量的错误,maven就会停止,然后将不会执行以下代码。但在错误的情况下,证据将是最有用的。
有人尝试过类似的东西吗?
感谢分享想法、想法和经验
通常,该问题有几种解决方案。
> < li>
您可以在所有测试都继承的父类上定义beforeAll/afterAll。另一个选择是尝试在一个接口上定义beforeAll/afterAll(我不能100%确定这是否可行;我会说应该的)。在beforeAll中,你可以初始化你的设置,在afterEachCallBack中,你可以收集一次测试所需的所有数据。所以每次测试后都会调用这个函数。
您可以实现一个扩展,它使用JUnit的回调,即BeforeAllCallback和AfterAllCallBack,它们可以处理这个问题。根据您的具体需要,您可能还需要在每次回调之前/之后实施。
另一种选择是使用测试执行侦听器,您可以在其中使用testPlanExecutionStarted
和testPlanExecutionFinated
,您应该实现它们来记录和获取所需的所有内容。
我做了一个示例项目,展示了JUnit Jupiter监听器的用法。
我一直在设置一些合约JUnit 4测试(遵循回答这个问题的建议) - 例如,如果我有一个接口(我已经在示例中包含了泛型,因为我在我的项目中使用它们) - 但是,这是一个大大简化的示例: 我可以创建一个抽象的合同测试,例如: ...并为每个实现扩展此抽象测试类(我使用。我还将一些变量传递给抽象测试类,以测试接口的实现。 然而,实际上,一些接口返回的对象是其他接口的实现,我希望能够使用该接口的抽象契约
我试图在JUnit5测试环境中使用JUnit4。事实上,我已经升级了我的pom来使用更高版本的MOckito和POwerMock。到目前为止,所有测试都基于JUnit4。我将平台和vintage依赖项添加到我的pom.xml中。 更早的pom。xml依赖关系
方法和测试位于一个类中,例如 下面是我的testng.xml的示例,其中包含了包含功能测试的包 UPD.post修改后的代码中包含AfterTest。我只使用before/aftermethod注释
我有15节6月5日的课要考试。当我从maven运行它们时,afterAll()被执行了15次,这导致了15次对Slack Webhook的通知。还有什么我需要只发送一个通知吗?