13

您是否在 K2 等复杂的工作流系统上进行自动化测试?

我们正在构建一个在 Sharepoint 2007 和 K2 之间进行广泛集成的系统。我什至无法想象从哪里开始自动化测试,因为工作流程涉及多个用户与 Sharepoint、K2 工作流程和自定义网页交互。

有人在 K2 这样的工作流服务器上做过自动化测试吗?付出比付出更多吗?

4

5 回答 5

3

我在测试工作流繁重的基于 MOSS 的应用程序时遇到了类似的问题。在我们的案例中,工作流程基于 WWF。

我的想法是模拟几乎所有你无法从单元测试中控制的东西——文档存储、身份验证、用户权限和操作、sharepoint 工作流的特定于共享点的部分(这些模拟应该经过彻底测试以反映真实组件的行为) .

您使用控制反转使代码选择在运行时使用哪个组件 - 真实或模拟。

然后你可以编写系统范围的测试来测试工作流的行为——设置你自己的环境,检查工作流引擎的反应。这些测试太大而不能称它们为单元测试,但它仍然是自动化测试。

这种方法似乎适用于琐碎的案例,但我仍然必须证明它值得在现实世界的工作流程中使用。

于 2008-09-27T08:06:03.203 回答
2

这是我使用的解决方案。这是一个简单的运行时包装器,允许执行单个活动,简化参数传递,阻塞调用线程直到工作流或活动完成,并转换/重新抛出异常(如果有)。由于我的工作流仅通过自定义工作流服务发送或等待消息,因此我可以模拟该服务以期望来自工作流的某些消息并向其发布某些消息,在这里我正在为我的 WF 进行真正的单元测试!技术的功劳归功于迈克尔·肯尼迪。

于 2009-03-11T20:01:42.270 回答
1

如果您要进行单元测试,Typemock Isolator 是目前唯一可以模拟 SharePoint 对象的工具。

顺便说一句,Richard Fennell正在研究工作流模拟解决方案。

于 2009-07-15T15:58:27.043 回答
0

我们今天刚刚编写了一个应用程序来监控我们的 K2 工作清单,从中提取某些任务,填写一些数据并提交任务以供完成。这使我们能够执行自动化测试,找到回归,并在人们花费的时间的一小部分内完成工作流的许多不同路径。我想可以编写一个类似的程序来伪装成共享点。

至于工作流项目本身的单元测试,我们有一个从 k2 引用的 dll,其中包含我们所有的线路规则和处理逻辑。我们在 k2 工作流本身中没有任何代码,它们都是从这些 dll 中引用的。这使我们可以轻松地在它们上编写单元测试来测试所有单独的行规则。

于 2008-12-09T15:35:42.513 回答
0

我已经使用 K2ROM API(如果您使用 K2 blackpearl,可能是 SourceCode.Workflow.Client)对 K2 工作流程进行了自动化集成测试。

基本上,您在具有已知作品集的测试服务器上启动一个进程(我生成一个 GUID),然后使用管理 API 将其删除。我编写了诸如 AssertAtClientActivity 之类的辅助方法(基本上使用标准调用 ProvideWorkItem)。

对 StartProcessInstance、WorklistItem.Finish 等使用 IsSynchronous 参数,使相关方法调用在流程实例达到稳定状态之前不会返回。

预计测试会很慢并且偶尔会失败。这些不是单元测试。

如果您想针对其他系统编写单元测试,您可能需要包装 K2 API。

考虑查看Windows Workflow 4SharePoint 2010 中的新工作流功能。您可能不需要 K2。

于 2011-01-24T22:22:04.383 回答