3

是否可以在不运行 Revit 的情况下创建我自己的 Revit API 代码的单元测试,该代码与 Revit DB 模型交互。

如果是这样,如何实现。

4

5 回答 5

2

我参与了一些提到的线程。我什至参与过一个项目,该项目有一个非常完善的 Revit 单元测试框架(很遗憾我不能分享)。

但这里是我可以告诉你的方法:你需要构建自己的基本框架来执行测试。它作为 Revit 内部的插件运行(您必须启动 Revit,选择插件,然后选择要运行的测试工具程序集)。之后,它很像 xUnit、MSTest 等。我认为我们有一些额外的测试属性,甚至可以将每个测试指向特定的测试模型。

整个事情的麻烦在于您必须启动 Revit,正如您所知,这可能需要一些时间(并且使该过程比在传统开发中使用单元测试方便得多)。在 Autodesk 决定进一步开放之前,这就是您所坚持的(除非您采用“Revit Python Shell”方法......我想我只是指传统的 .NET 语言)。

祝你好运...

于 2012-09-10T13:18:13.707 回答
2

Dynamo 项目包括Dynamo Revit 测试框架,它允许您在 Revit API 上运行 NUnit 测试。它处理日志文件的生成,以创建单独的 Revit 会话以单独进行测试(测试也可以作为一个 revit 会话中的夹具一起运行)。它目前面向 Dynamo,但很容易适应非 Dynamo 使用。作为Dynamo 项目的一部分,它是开源的。

此外,如果您对源代码进行了改进,请随时提出拉取请求。我们一直在寻找好的贡献。

于 2014-01-13T17:08:13.010 回答
1

您可以将 API 代码抽象为一个接口,然后在一组模拟对象上实现它以用于测试:

单元测试:模拟对象来救援!

于 2012-09-09T02:36:38.710 回答
1

我不确定你能找到比这里 http://forums.augi.com/showthread.php?98536-Unit-testing-with-Revit-API 和这里 http://darenatwork.blogspot 描述的更多关于 Revit 单元测试的信息。 com/2010/11/unit-testing-revit-plugins_10.html

或者您可能会找到自己的方式来使用 Revit API 进行单元测试。

于 2012-09-10T03:27:05.730 回答
1

Jeremy Tammik 写了一篇关于这个主题的博文

http://thebuildingcoder.typepad.com/blog/2013/07/revit-add-in-unit-testing.html

于 2013-11-13T17:46:43.457 回答