Revit API代码单元测试

时间:2012-09-09 02:24:55

标签: c# revit revit-api

是否可以创建我自己的Revit API代码的单元测试,该代码与Revit DB模型交互而无需运行Revit。

如果是这样,那将如何实现。

5 个答案:

答案 0 :(得分:2)

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

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

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

祝你好运......

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

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

Unit Testing: Mock Objects to the Rescue!

答案 3 :(得分:1)

我不确定您是否发现了比此处所述更多的Revit单元测试 http://forums.augi.com/showthread.php?98536-Unit-testing-with-Revit-API 和这里 http://darenatwork.blogspot.com/2010/11/unit-testing-revit-plugins_10.html

或者您可以找到自己的方式如何使用Revit API进行单元测试。

答案 4 :(得分:1)

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

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