乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 177|回复: 14

CADtest - AutoCAD 内部的 NUnit / 集成测试

[复制链接]

23

主题

239

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
327
发表于 2015-3-10 22:47:04 | 显示全部楼层 |阅读模式

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2015-3-10 23:43:28 | 显示全部楼层
谢谢埃文!
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2015-3-10 23:48:47 | 显示全部楼层
是的,非常感谢,干得好。
有很多工作要做!
回复

使用道具 举报

23

主题

239

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
327
发表于 2015-3-11 09:38:35 | 显示全部楼层
干杯,我仍然在去,尽管我确实有实际的生产工作,我应该做哎呀。我添加了一些狡猾的
SampleTests.。cs|.vb
.奇怪的是,在 accoreconsole.exe 中运行测试在 2013 版本中显示得非常完美,但在 2015 年没有控制台输出......但是在 acad.exe v2015 中运行它很好。在所有情况下,它仍然写入TestResults.xml所以它确实有效,你只是在v2015的核心控制台中看不到它。是他们打破了它,还是只有我?我甚至尝试重新安装AutoCAD。
富有想象力地命名为“
Test_method_name()
”是一个例子,说明为什么你可能想要运行一个单位...呃,AutoCAD内部的集成测试。一旦你开始用物体做更复杂的事情,嘲笑或伪造任何东西的难度就会高得无聊。
回复

使用道具 举报

23

主题

239

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
327
发表于 2015-3-15 18:07:36 | 显示全部楼层
如果您正在遵循这一点,请注意GitHub存储库中的提交,因为这仍然是一个半成品...
我最新的灵机一动-测试方法不应该向数据库提交任何东西,这些应该是单元测试(我在这里将“单元”定义为“工作单元”,与其说是孤立主义意义上的,不如说是最简单的代码单元),所以数据库应该为每个测试保持干净。我更改了示例测试和Resharper测试方法模板。请注意,测试测试方法调用的辅助方法仍然提交它们的事务,但是当从测试方法内部调用辅助方法时,它们都将在测试方法的事务回滚时回滚。
顺便说一句,在AutoCAD 2015的核心控制台中运行测试是一种糟糕的体验(它们仍然运行,但控制台输出已损坏),但是...显然,我没有破坏它。
一如既往,我们鼓励您的意见和建议!
回复

使用道具 举报

23

主题

239

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
327
发表于 2015-3-16 09:39:07 | 显示全部楼层
我没有在本地计算机上安装AutoCAD,但我始终使用远程调试。目标远程计算机必须安装 AutoCAD 版本 (2009-2015) 和 Gallio。通常,我在本地计算机(在 MSVS IDE 中)编写 Gallio 测试,并将结果保存在远程计算机上(输出路径是远程计算机的共享目录)。然后,我直接(通过 Windows 控制台)在远程计算机上运行此测试,无需任何 MSVS 远程调试监视器,并以 HTML 格式获取报告。
我必须在远程计算机上安装哪些软件才能通过 NUnit 进行测试?我希望 - 我必须安装NUnit - 这不是问题,但足够了吗?
回复

使用道具 举报

23

主题

239

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
327
发表于 2015-3-16 17:28:41 | 显示全部楼层
我还没有尝试过远程调试 - 但我会的!
您不需要在远程计算机上安装NUnit - Github上的CADtest项目将使用Nuget获取所有NUnit依赖项,并将它们添加到
\bin\
文件夹中。我还没有在我的PC上安装NUnit 3,但CADtest运行正常。我安装了NUnit 2.6.4,我知道2.x版本在CADtest中不起作用,所以我确定它运行
\bin\文件夹中的所有内容

NUnit的报告格式是XML,但有一些项目可以将其转换为HTML,如 https://github.com/SongArc/NUnit-HTML-Report-Generator/tree/develop 和 https://github.com/relevantcodes/NUnitOrange 或者您可以在控制台中看到结果,即使在
acad.exe
(但不是theCore Console >v2013,因为它看起来像Autodesk打破了它。
回复

使用道具 举报

23

主题

239

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
327
发表于 2015-3-19 07:51:23 | 显示全部楼层
你是最棒的!我正在看你的样本,并创建了第二个模板:一个
utoCAD。NET扩展(NUnit测试)
。它基于
模板。我也会把它发到你的邮箱里。现在我还在玩它。
回复

使用道具 举报

23

主题

239

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
327
发表于 2015-3-20 14:38:18 | 显示全部楼层
良好的...可以编写测试,然后在不做任何更改的情况下为Gallio和NUnit编译此代码-它运行良好。就像我们使用相同的代码源来构建AutoCAD、nanCAD和BricsCAD的扩展一样。
链接到Gallio框架的测试适用于任何AutoCAD版本(我检查了AutoCAD 2009-2015 x64 Enu)。
链接到NUnit框架的测试适用于任何AutoCAD版本,比AutoCAD 2010更新。但是在AutoCAD 2011-2014的这种情况下,有必要将0设置为NEXTFIBERWORLD变量的值,然后重新启动AutoCAD。测试结束后,不要忘记将NEXTFIBERWORLD变量的1值设置回来。
不可能对2011年以上的AutoCAD使用NUnit测试,因为它们没有NEXTFIBERWORLD变量。在这种情况下,只有Gallio可以。
回复

使用道具 举报

23

主题

239

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
327
发表于 2015-3-20 19:51:39 | 显示全部楼层
我不需要将
NEXTFIBERWORLD
设置为0(在我的开发机器上仍然是1)。你在每个测试类的顶部设置了这个属性吗?...
[TestFixture, Apartment(ApartmentState.STA)]
(好的,是的,我在你的电子邮件中看到了,我会在这里为其他人留下这个提示)
我还没有尝试在2013和2015以外的AutoCAD版本中运行任何CADtest,包括在
acad.exe

acadcoreconsole.exe
中。
我将所有CADtest保存在一个单独的项目中,该项目将我的主项目引用为
,我还将所有正常的NUnit测试保存在另一个单独的项目中,因为我在Visual Studio中运行这些测试。我知道这听起来很乱,但我认为它更整洁,因为我喜欢东西在自己的地方。这也意味着如果我今天不想处理这些项目,我可以从Visual Studio解决方案中卸载它们。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-5 04:10 , Processed in 0.161630 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表