gpt4 book ai didi

c# - 使用 NUnit,我可以确定哪些测试先于当前运行的测试吗?

转载 作者:太空宇宙 更新时间:2023-11-03 15:31:27 26 4
gpt4 key购买 nike

这是我的场景 - 使用 NUnit 在 C# 中编码,我有这些测试:

  • 测试1
  • 测试2
  • 测试3
  • 测试4
  • 测试X

这些测试的前四个 都是独立运行的,但我需要 TestX 以稍微不同的方式运行。根据我刚刚运行的之前的测试,此测试需要以不同的方式运行。

例如,如果我选择在一次运行中运行 Test1、Test2 和 TestX,那么 TestX 将以一种方式运行,但如果我改为运行 Test3、Test4,然后运行 ​​TestX,它将以不同的方式运行。我希望有一种方法可以访问在特定运行中使用了哪些测试,并将其提供给 switch 语句以相应地更改 TestX。

澄清:我不需要 TestX 知道前四个测试的结果或关于它们如何运行的任何信息,只需要了解它们是否已运行即可。此外,当我提到单个“测试运行”时,我的意思是按住 CTRL 在测试资源管理器中单击多个测试,然后一次性运行它们。

我似乎无法从 TestContext 访问此信息,但我真的希望有另一种我尚未想到的方法。任何帮助将不胜感激 - 非常感谢。

最佳答案

首先,恕我直言,你想做的是个坏主意。

话虽如此,我能想到的唯一可靠方法是将 TestX 的行为基于其他测试运行的一些可观察到的副作用。因此,如果测试都将数据添加到数据库中的表中,那么让 TestX 查看创建了哪些数据,然后相应地进行操作。你不应该这样做。

现在回到我认为你应该做的:

有几个 TestX 变体,每个变体都测试如果前面的每个测试都运行了,TestX 应该做什么,即将你建议的 switch 语句的每个部分放入一个单独的测试中,并安排(或设置)那个test 做与运行前面的测试相同的工作。

这可能看起来需要更多工作,但它会为您提供更好、更具可重复性的测试,我认为这将更易于维护。

关于c# - 使用 NUnit,我可以确定哪些测试先于当前运行的测试吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33693072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com