当前位置:网站首页>执行测试
执行测试
2022-06-09 13:26:00 【用户7741497】
执行测试
示例:执行测试
现在使用%UnitTest.Manager.RunTest执行单元测试。以下是方法:
- 在包含单元测试的名称空间中打开终端;在本例中为用户。如果终端未在正确的命名空间中打开,请使用ZN更改命名空间。
- 将
^UnitTestRoot全局值设置为包含导出的测试类的目录的父级。
DHC-APP>Set ^UnitTestRoot="d:\Temp"- 使用方法
%UnitTest.Manager.RunTest执行测试。
DHC-APP>do ##class(%UnitTest.Manager).RunTest("test")- IRIS从
XML文件加载测试类,编译类,执行测试,从服务器删除测试代码,并向终端发送报告。
HC-APP>do ##class(%UnitTest.Manager).RunTest("test")
===============================================================================
Directory: D:\Temp\test\
===============================================================================
test begins ...
Load of directory started on 05/14/2021 14:07:17 '*.xml;*.XML;*.cls;*.mac;*.int;*.inc;*.CLS;*.MAC;*.INT;*.INC'
Loading file D:\Temp\test\Tests.xml as xml
Imported class: MyPackage.Tests
Compilation started on 05/14/2021 14:07:17 with qualifiers '', using up to 4 worker jobs
Compiling class MyPackage.Tests
Compiling routine MyPackage.Tests.1
Compilation finished successfully in 0.019s.
Load finished successfully.
MyPackage.Tests begins ...
TestAdd() begins ...
AssertEquals:Test Add(2,2)=4 (passed)
AssertNotEquals:Test Add(2,2)'=5 (passed)
LogMessage:Duration of execution: .000061 sec.
TestAdd passed
MyPackage.Tests passed
test passed
Use the following URL to view the result:
http://172.18.18.159:52773/csp/sys/%25UnitTest.Portal.Indices.cls?Index=3&$NAMESPACE=DHC-APP
All PASSED最后一行显示了测试报告的URL。
注意:以这种方式运行测试会在它们执行后从InterSystems IRIS中删除它们。如果在执行测试后返回到Atelier查看测试,将看到一个指示,表明Atelier中可见的文件与服务器不同步。可以保存或重新编译该类,以将代码添加回服务器。 如果使用的是.cls文件而不是XML文件,则必须向RunTest提供/loadudl限定符。
USER>do ##class(%UnitTest.Manager).RunTest("mytests","/loadudl")示例:UnitTest Portal
运行单元测试将生成测试报告。InterSystems IRIS提供了一个用于查看报告的UnitTest门户。报告按命名空间组织。
可以使用系统资源管理器System Explorer > Tools > UnitTest Portal导航到UnitTest门户。如有必要,请切换到用户命名空间。
示例:在单元测试门户中查看报告
门户将测试结果组织成一系列报告。每个测试报告将测试结果组织到一系列超链接页面中。按照链接查找越来越具体的信息。
第一页提供了所有测试套件的摘要。在这种情况下,所有测试套件都通过了。
单击要查看的报告的ID列中的ID号。
第二个页面显示每个测试套件的结果。在本例中,mytest是测试套件,并且通过了测试。
单击 mytests.
第三个页面显示每个测试用例的结果。在本例中,通过了单个测试用例MyPackage.Tests。
单击 MyPackage.Tests
第四页显示了通过测试方法得出的结果。这里通过了单个测试方法TestAdd。
单击 TestAdd.
最后一页显示测试方法中使用的每个AssertX宏的结果。在本例中,AssertEquals和AssertNotEquals都通过了。
设置和拆卸
%UnitTest.TestCase类提供的方法可用于在一个测试或一组测试执行之前设置测试环境,然后在测试完成后拆除该环境。以下是对这些方法的说明:
方法 | 描述 |
|---|---|
OnBeforeAllTests | 在测试类中的任何测试方法执行之前执行一次。可以设置测试环境。 |
OnAfterAllTests | 在测试类中的所有测试方法执行后执行一次。可以破坏测试环境。 |
OnBeforeOneTest | 在测试类中的每个测试方法执行之前立即执行。 |
OnAfterOneTest | 在文本类中的每个测试方法执行后立即执行。 |
示例:向测试类添加Setup和Tear Down方法
在本例中,将添加一个名为TestEditContact的测试方法。此方法验证MyPackage.Contact类的ContactType属性是否限制为“Personal”或“Business”。添加了一个OnBeforeAllTests方法,该方法在测试执行之前准备数据库。还可以添加一个OnAfterAllTests方法,该方法在测试执行后还原数据库状态。
- 在
Studio中打开MyPackage.Tests(可能需要从^UnitTestRoot目录导入它)。 - 添加
OnBeforeAllTests和OnAfterAllTests方法。
Method OnBeforeAllTests() As %Status
{
Do ##class(MyPackage.Contact).Populate(1)
Return $$$OK
}Method OnAfterAllTests() As %Status
{
Do ##class(MyPackage.Contact).%KillExtent()
Return $$$OK
}OnBeforeAllTests方法使用单个Contact实例填充数据库。OnAfterAllTests方法从数据库中删除所有Contact实例。
- 现在将
TestEditContact测试方法添加到MyPackage.Tests:
Method TestEditContact()
{
set contact=##class(MyPackage.Contact).%OpenId(1)
set contact.Name="Rockwell,Norman"
set contact.ContactType="Friend"
Do $$$AssertStatusNotOK(contact.%Save(),"ContactType = Friend")
Set contact.ContactType="Personal"
Do $$$AssertStatusOK(contact.%Save(),"ContactType = Personal")
}该方法在两种情况下测试执行%Save on Contact返回的状态值:为ContactType分配无效值之后和为ContactType分配有效值之后。
- 将测试导出到
c:\unittest\mytest,覆盖现有的Tests.xml。
边栏推荐
- 【深度优先搜索】玩具蛇:迷宫问题
- C# 计算两个时间间隔
- 智慧农业小麦室外病虫害防治规范,北斗农业
- 发牌三年 5G网络深度覆盖 应用融入千行百业
- 【tgcalls】跟踪调试calls的manager们 3: cricket::Candidate> 的回传上层
- Dr. Stanford put forward the idea of ultra fast and saving memory attention. The gpt-2 training speed was increased by 3.5 times, and the Bert speed reached a record
- Specification for outdoor pest control of wheat in smart agriculture, Beidou agriculture
- QUIC必看
- 5分钟了解NFV
- HCIA datacom experiment IPv4 addressing and IPv4 routing basic experiment
猜你喜欢

TCP/IP协议(1)

进程,时间片,并发与并行

美国限制分享安全漏洞将捧起石头砸自己的脚,国产系统获发展契机

WordPress地址(URL)修改后打不开网站的解决方法

Win11 enable multi-user remote desktop simultaneous login

【计网】思科 期末选择题复习

#导入Word文档图片# VM虚拟机网络设置

Qiniu cloud backup website

大道至简 | 设计 ViT 到底怎么配置Self-Attention才是最合理的?

CNN's performance is even stronger without looking at the whole picture and the parts
随机推荐
零基础学网络:命令行(CLI)调试防火墙实战
[Ji Wang] review of Cisco final multiple choice questions
《数字经济全景白皮书》银行财富管理篇 重磅发布
Lossy transmission instance
他26岁,发表论文18篇,刚把上世纪的素数猜想给证明了
常见的图像分割方法
智慧农业小麦室外病虫害防治规范,北斗农业
多元时间序列分析 —— 因果检验
像大脑一样,纳米磁体网络可用于执行类似 AI 的计算处理,可降低能耗
mysql不能update查询结果集的解决办法
测试概念篇
【并查集】合根植物(连通块的数数量)
In WinCC, how to use C script to set + reset + negate variables?
On the difference between redistemplate and stringredistemplate
从刚入测试界到薪资翻倍:聊聊我的测试进阶历程,值得借鉴
C语言 结构体 | 链表
QUIC必看
Avenue to simplicity | how to configure self attention for vit is the most reasonable?
15 Uncaught TypeError: Cannot set properties of null (setting ‘onclick‘)
超越ReLU却鲜为人知,3年后被挖掘:BERT、GPT-2等都在用的激活函数