3

我有一个曾经可以工作的安装,但现在似乎不行。想知道有没有其他人经历过这种情况。

曾经运行的测试现在不运行了。似乎什么都没有运行。输出始终如下:

+------------------------+ |测试执行总结| +------------------------+

|否|测试用例名称|结果|

+--+-----------+------+

测试用例摘要:0 个测试用例执行,0 个成功,0 个失败,0 个错误。

4

4 回答 4

17

测试过程必须以全小写关键字 test 开头。[测试开始名字就可以了。所有其他存储过程都被忽略。这在代码中得到了证明,但是有人(咳咳)决定对测试进行编号来下订单。数字需要在 test 关键字之后。现在我有再次通过/失败的测试!

于 2013-07-25T10:30:19.557 回答
1

你的问题没有提供大量的细节。是什么产生了上面的输出?EXEC tSQLt.RunAll 或者 EXEC tSQLt.Run 'MyTests'。要注意的一件事是,如果您有一个已经存在的测试类(例如“MyTests”)并且您再次运行 EXEC tSQLt.NewTestClass 'MyTests',它将清除测试类中的所有现有测试。

试试这个。

EXEC tSQLt.NewTestClass 'MyTests'
GO

CREATE PROCEDURE MyTests.testThisOut
AS
BEGIN
    EXEC tSQLt.Fail 'this should not work'
END
GO

EXEC tSQLt.NewTestClass 'MyTests'
GO

EXEC tSQLt.Run 'MyTests'
GO
于 2013-08-06T11:33:48.230 回答
0

经过一夜的挣扎,我发现了一些对我有用的东西:

我删除了为测试创建的所有存储过程。(请注意,它们可以在外部资源 -> 可编程性 -> 存储过程下的数据库映射中找到,然后它们可能位于列表的顶部。)

然后我确保再次运行 newTestClass (只有这些行):

EXEC tSQLt.NewTestClass 'testJobs';
GO

然后我再次运行我所有的存储过程/测试,例如这个:

CREATE PROCEDURE testJobs.[testing simple UTC]

AS
BEGIN

    DECLARE @sum INT;
    SELECT @sum = 3 + 2;

    EXEC tSQLt.AssertEquals 5, @sum;

END;
GO

代码应以“”create procedure”开头,以“end;”结尾。go" 行。一一运行这些,然后可以使用以下命令执行整个测试类:

EXEC tSQLt.Run 'testJobs';

希望这可以帮助。

达库拉

于 2019-03-31T19:13:45.643 回答
0

就我而言:

1. 错误,0 测试用例执行

EXEC tSQLt.NewTestClass @ClassName = N'BasicTests'  ;
GO
CREATE PROCEDURE [BasicTests].[ test assertEquals]  AS
BEGIN

DECLARE  @expected INT;
 SET @expected=1;
 DECLARE @actual INT ;
 SET @actual=1;
    EXEC tSQLt.AssertEquals @expected, @actual;

END;


GO



EXEC tSQLt.RunALL -- OR EXEC tSQLt.Run '[BasicTests]';  --

======================

输出

(0 行受影响)

+------------------------+ |测试执行总结| +------------------------+

|No|测试用例名称|Dur(ms)|结果|

+--+--------------+--------+------+

测试用例摘要:0 个测试用例执行,0 个成功,0 个失败,0 个错误。

2. 没有错误,在命名测试过程中出现测试用例执行问题

EXEC tSQLt.NewTestClass 'testBasic';
GO

CREATE PROCEDURE testBasic.[test assertEquals]
AS
BEGIN
DECLARE  @expected INT;
 SET @expected=1;
 DECLARE @actual INT ;
 SET @actual=1;
    EXEC tSQLt.AssertEquals @expected, @actual;

END;
GO

EXEC tSQLt.RunALL  --OR EXEC tSQLt.Run '[testBasic]'; --

===========================

输出

(0 行受影响)

+------------------------+ |测试执行总结| +------------------------+

|No|测试用例名称 |Dur(ms)|结果 | +--+-------------------+-------+------ -+

|1 |[testBasic].[test assertEquals]| 0|成功|

测试用例摘要:1 个测试用例已执行,1 个成功,0 个失败,0 个错误。

最后,可以按如下方式查看或删除测试类:

从 tSQLt.TestClasses 中选择名称、SchemaId;

执行 tSQLt.DropClass 'testBasic'

于 2019-09-23T11:51:36.263 回答