Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Revit API代码单元测试_C#_Revit_Revit Api - Fatal编程技术网

C# Revit API代码单元测试

C# Revit API代码单元测试,c#,revit,revit-api,C#,Revit,Revit Api,是否可以为我自己的Revit API代码创建单元测试,该代码可以在不运行Revit的情况下与Revit DB模型交互 如果是这样的话,这是如何实现的。您可以将API代码抽象到一个接口中,然后在一组模拟对象上实现它以用于测试: 我不确定您是否找到了比此处描述的更多有关Revit单元测试的信息 这里呢 或者,您可能会找到自己的方法来使用Revit API进行单元测试。我已经介绍了上面提到的一些线程。 我甚至参与过一个项目,该项目有一个非常完善的Revit单元测试框架(遗憾的是,我无法共享) 但以下

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


如果是这样的话,这是如何实现的。

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


我不确定您是否找到了比此处描述的更多有关Revit单元测试的信息 这里呢


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

我已经介绍了上面提到的一些线程。 我甚至参与过一个项目,该项目有一个非常完善的Revit单元测试框架(遗憾的是,我无法共享)

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

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


祝你好运…

杰里米·塔米克(Jeremy Tammik)就这个话题写了一篇博文


Dynamo项目包括,它允许您在Revit API上运行NUnit测试。它处理日志文件的生成,以创建单独的Revit会话以进行独立测试(测试也可以作为一个Revit会话中的固定装置一起运行)。它目前面向发电机,但很容易适应非发电机使用。而且它是开源的,是应用程序的一部分


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

好主意,David,但我正试图针对一个模型工作,所以我想我真的需要一些集成的单元测试:)谢谢,我希望有一种机制,可以从API中导出文档,并与API一起运行,以便在真正的单元测试样式环境中与文档交互。在这种情况下,Revit Python Shell以何种方式更好?确实如此。下面是构建编码器单元测试主题组:我可以在这里支持Ian的答案。RTF可以很容易地用于对Revit中的外部命令进行单元测试。