使用 NUnit,我可以确定在当前 运行 之前进行了哪些测试吗?
Using NUnit, can I determine what tests have preceded the one currently running?
这是我的场景 - 使用 NUnit 在 C# 中编码,我有这些测试:
- 测试 1
- 测试2
- 测试 3
- 测试4
- 测试X
这些测试的前四个 都是独立运行的,但我需要 TestX 来执行一些不同的操作。该测试需要以不同的方式运行,具体取决于我之前进行的测试 运行.
例如,如果我选择 运行 Test1、Test2 和 TestX 合而为一 运行 那么 TestX 将以一种方式运行,但如果我改为 运行 Test3、Test4然后是 TestX,它的行为会有所不同。我希望有一种方法可以访问特定 运行 中使用了哪些测试,并将其输入 switch 语句以相应地更改 TestX。
澄清:我不需要 TestX 知道前四次测试的结果或关于它们如何 运行 的任何信息,只是简单地知道它们是否 运行。另外,当我说引用单个 "test run" 时,我的意思是在测试资源管理器中按住 CTRL 键单击多个测试,然后 运行 一次性将它们全部连接起来。
我似乎无法从 TestContext 访问此信息,但我真的希望有另一种我尚未想到的方法。任何帮助将不胜感激 - 非常感谢。
首先,恕我直言,你想做的是个坏主意。
话虽如此,我能想到的唯一可靠方法是将 TestX 的行为基于其他测试 运行ning 的一些可观察到的副作用。因此,如果测试都将数据添加到数据库中的 table,那么让 TestX 查看创建了哪些数据,然后相应地进行操作。你不应该这样做。
现在回到我认为你应该做的事情:
有几个 TestX 变体,每个变体都测试 TestX 应该做什么,如果每个前面的测试都已经 运行,即将你建议的 switch 语句的每个部分放入一个单独的测试中,并安排该测试的(或设置)与 运行ning 前面的测试所做的工作相同。
这可能看起来需要更多工作,但它会给你更好的重复table 测试,我认为这将更易于维护。
这是我的场景 - 使用 NUnit 在 C# 中编码,我有这些测试:
- 测试 1
- 测试2
- 测试 3
- 测试4
- 测试X
这些测试的前四个 都是独立运行的,但我需要 TestX 来执行一些不同的操作。该测试需要以不同的方式运行,具体取决于我之前进行的测试 运行.
例如,如果我选择 运行 Test1、Test2 和 TestX 合而为一 运行 那么 TestX 将以一种方式运行,但如果我改为 运行 Test3、Test4然后是 TestX,它的行为会有所不同。我希望有一种方法可以访问特定 运行 中使用了哪些测试,并将其输入 switch 语句以相应地更改 TestX。
澄清:我不需要 TestX 知道前四次测试的结果或关于它们如何 运行 的任何信息,只是简单地知道它们是否 运行。另外,当我说引用单个 "test run" 时,我的意思是在测试资源管理器中按住 CTRL 键单击多个测试,然后 运行 一次性将它们全部连接起来。
我似乎无法从 TestContext 访问此信息,但我真的希望有另一种我尚未想到的方法。任何帮助将不胜感激 - 非常感谢。
首先,恕我直言,你想做的是个坏主意。
话虽如此,我能想到的唯一可靠方法是将 TestX 的行为基于其他测试 运行ning 的一些可观察到的副作用。因此,如果测试都将数据添加到数据库中的 table,那么让 TestX 查看创建了哪些数据,然后相应地进行操作。你不应该这样做。
现在回到我认为你应该做的事情:
有几个 TestX 变体,每个变体都测试 TestX 应该做什么,如果每个前面的测试都已经 运行,即将你建议的 switch 语句的每个部分放入一个单独的测试中,并安排该测试的(或设置)与 运行ning 前面的测试所做的工作相同。
这可能看起来需要更多工作,但它会给你更好的重复table 测试,我认为这将更易于维护。