我在控制台中可以正常运行一些Pester测试,但是我想自动运行测试,如果任何测试失败,则发送一条消息。我阅读了-EnableExit选项,导致Invoke-Pester返回失败测试的数目。但是无论何时我使用-EnableExit,PowerShell控制台都会关闭,无论测试是否失败。它是Pester版本4.7.3。 PSVersion 5.1。
Invoke-Pester -EnableExit
是否应该关闭外壳?
如何获得失败的测试数量?
运行良好:
Invoke-Pester -Script D:\tmp\PowerShell\dummy1.Tests.ps1
关闭外壳窗口:
Invoke-Pester -Script D:\tmp\PowerShell\dummy1.Tests.ps1 -EnableExit
我希望得到一个整数作为输出,但是控制台窗口关闭。
答案 0 :(得分:1)
您可以使用def create_table(self):
self.curr.execute("""DROP TABLE IF EXISTS saleitems_hm""")
self.curr.execute("""create table saleitems_hm(
hm_title text,
hm_regular_price text,
hm_sale_price text,
hm_photo_url text,
hm_description_url text
)""")
self.curr.execute("""DROP TABLE IF EXISTS saleitems_f21""")
self.curr.execute("""create table saleitems_f21(
f21_title text,
f21_regular_price text,
f21_sale_price text,
f21_photo_url text,
f21_description_url text
)""")
def process_item(self, item, spider):
self.store_db(item)
return item
def store_db(self, item):
self.curr.execute("""insert into saleitems_hm values (%s, %s, %s, %s, %s)""", (
item['hm_title'],
item['hm_regular_price'],
item['hm_sale_price'],
item['hm_photo_url'],
item['hm_description_url']
))
self.conn.commit()
self.curr.execute("""insert into saleitems_f21 values (%s, %s, %s, %s, %s)""", (
items_f21['f21_title'],
items_f21['f21_regular_price'],
items_f21['f21_sale_price'],
items_f21['f21_photo_url'],
items_f21['f21_description_url']
))
self.conn.commit()
上的-PassThru
开关来获取失败测试的次数。例如:
Invoke-Pester
然后,我的$TestResults = Invoke-Pester -PassThru
变量具有$TestResults
属性,其中包含失败测试的数量。然后,如果测试失败,则可以将其用作管道的一部分以使管道失败:
FailedCount
以下是If ($TestResults.FailedCount -gt 0) { Throw "There were $($TestResults.FailedCount) failed tests" }
返回的其他示例:
-PassThru
答案 1 :(得分:0)
使用-PassThru
的{{1}}开关参数
Invoke-Pester
答案 2 :(得分:0)
您可以通过以下操作获得失败测试的数量:
(Invoke-Pester -Path D:\tmp\PowerShell\dummy1.Tests.ps1 -PassThru -Show None).FailedCount
如果您需要其他数据(通过/跳过的计数,测试结果等),则将输出传递给变量,然后进行进一步处理:
$testResults = Invoke-Pester -Path D:\tmp\PowerShell\dummy1.Tests.ps1 -PassThru -Show None