java - "distributed unit testing"的框架或工具?

标签 java unit-testing distributed-system

<分区>

是否有任何工具或框架能够更轻松地测试用 Java 编写的分布式软件?我的被​​测系统是一个点对点软件,我想使用类似 PNUnit 的东西进行测试。 ,但使用 Java 而不是 .Net。

被测系统是我正在开发的用于构建 P2P 应用程序的框架。它使用 JXTA作为一个较低的子系统,试图隐藏它的一些复杂性。它目前是一个学术项目,所以我现在追求简单。

在我的测试中,我想证明一个点(在它自己的进程中运行,可能有多个线程)可以发现另一个点(在另一个进程甚至另一台机器中运行)并且它们可以交换一些消息。我既不使用模拟也不使用 stub ,因为我需要看到双方同时工作。我意识到需要某种协调机制,而 PNUnit 似乎能够做到这一点。

我遇到了一些倡议,例如 Pisces ,它“旨在提供一个扩展 JUnit 的分布式测试环境,使开发人员/测试人员能够运行远程 JUnit 并创建由多个并行或串行运行的远程 JUnit 测试组成的复杂测试套件”,但是这个项目和一个我发现的其他一些人似乎早已死去。

最佳答案

测试分布式软件在很大程度上取决于它是什么类型的软件,因此为了获得完整的答案,我需要知道您的软件是做什么的。然而,看看 PNUnit,它所做的大部分工作都是允许测试的同步、排序和并行执行。 TestNG也支持这个,例如,你可以这样做:

@Test(threadPoolSize = 3, invocationCount = 10,  timeOut = 10000)
public void testServer() {
   :
}

这将从三个不同的线程调用函数 testServer 十次。 TestNG 4.5 的更改日志也暗示了运行远程测试的可能性,更多信息可在 this 中找到。博客文章。

或者,您可以查看 IBM 的 ConTest用于测试并行和分布式软件的软件(关于如何使用它有很好的描述 here )。我使用它来暴露并发应用程序中的错误取得了巨大的成功。

关于java - "distributed unit testing"的框架或工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2672506/

相关文章:

java - 如何模块化/组织 Java Web 应用程序

java - 是否可以将分区添加到 Kafka 0.8.2 中的现有主题

python测试结果报告

java - 使用模拟对象时测试粒度

hadoop - hadoop 的分布式替代品

distributed-system - CAP 定理中可用性的一致性

asp.net-mvc - 基于 cookie 的身份验证如何在多实例 Web 应用程序中工作?

java - 使用 java-apns 检测推送问题

java - Android,viewpager,每个布局都有自己的 Activity

python - 如何测试函数是否运行正常或返回特定值