Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2008 如何在VisualStudio2008中以随机顺序执行单元测试?_Visual Studio 2008_Unit Testing - Fatal编程技术网

Visual studio 2008 如何在VisualStudio2008中以随机顺序执行单元测试?

Visual studio 2008 如何在VisualStudio2008中以随机顺序执行单元测试?,visual-studio-2008,unit-testing,Visual Studio 2008,Unit Testing,我希望在VisualStudio中以随机顺序执行单元测试。有办法吗?单元测试应该是自包含的,不会影响任何其他测试,所有单元测试都应该运行,以确保所做的更改没有破坏某些东西。随机运行它们是没有意义的 我所知道的所有测试框架中的每个测试都作为一个单独的单元运行,因此测试之间不能存在依赖关系。即使是在设置方法中设置的项目,也会为每个单元测试重新创建 因此,随机运行测试是没有意义的,因为它们是自包含的 如果你说的是集成测试,那就另当别论了。在我看来,它们总是以某种随机顺序执行的。您可以在trx文件中看到

我希望在VisualStudio中以随机顺序执行单元测试。有办法吗?

单元测试应该是自包含的,不会影响任何其他测试,所有单元测试都应该运行,以确保所做的更改没有破坏某些东西。随机运行它们是没有意义的

我所知道的所有测试框架中的每个测试都作为一个单独的单元运行,因此测试之间不能存在依赖关系。即使是在设置方法中设置的项目,也会为每个单元测试重新创建

因此,随机运行测试是没有意义的,因为它们是自包含的


如果你说的是集成测试,那就另当别论了。

在我看来,它们总是以某种随机顺序执行的。您可以在trx文件中看到实际顺序。我说不出它的“随机性”有多“可靠”。

你到底为什么要这样做?蒙上眼睛,用鼠标随机点击。你的单元测试有顺序依赖关系被认为是不好的做法。你不应该在意它们的执行顺序。这是一个有效的问题。例如,Google测试有一个
--gtest_shuffle
标志。您这样做的原因是为了确保您不会意外地依赖于测试之间的依赖关系。@Marcelo:据我所知,这是一种标准的工作方式,可以确保您的UTs不需要我上面提到的其他UTSA创建的东西,以随机顺序运行测试是一种经过时间检验的做法,可以确保测试之间不会意外地存在依赖关系。很多测试框架都是自动完成的。同意Nate的观点。如果你总是以相同的顺序运行UT,那么它们可能只是因为特殊的顺序才起作用,最好是对它们进行洗牌。如果你以某种方式对某些东西进行单元测试,你可能会以它们之间的依赖关系结束。无论如何,你是对的,我说的是集成测试而不是单元测试,但这并没有改变主题。单元测试和集成测试是非常不同的,不能被视为相同的。单元测试的定义是测试一个单元的代码,没有依赖性,也没有持久性。@skyfoot-1。你并不是在回答他的问题。他是否应该以不同的顺序运行它们是另一回事。乍一看,它们看起来是随机的,但如果您多次运行它们,它们总是以相同的随机顺序运行,除非您插入新的测试,因此根本不是随机的:(