运行 多个测试来自不同测试项目的相同构建
Run multiple test same build from different tests project
在以下情况下需要您的帮助:
- 我有一个包含 2 个不同单元测试的项目的解决方案
- 这些项目生成 2 个不同的 dll:*deployment.dll 和 *database.dll
我有一个 TFS 构建,我想用它来 运行 这些测试,我正在使用 "Test Case Filter" 来过滤我的测试类别
(TestCategory=TEST1|TestCategory=TEST2|TestCategory=TEST3|TestCategory=TEST4)
并且在 "Test Sources Spec" 我正在过滤两个 dll (*deployment.dll;*database.dll
)
- *.deployment.dll 有测试 2、测试 3、测试 4
- *.database.dll 有 TEST1
这行不通,*database.dll 的测试没有 运行。在 Visual Studio Test Runner
中选择的测试
你能帮忙吗?如果我只使用 1 个 dll 进行构建,例如 *.database.dll,TEST1 运行s well.
(更新)情景 1
测试用例过滤器: TestCategory=TEST1|TestCategory=TEST1|TestCategory=TEST2|TestCategory=TEST3|TestCategory=TEST4
测试源规范: *database.dll;*deployment.dll
只有 运行s TEST1
(更新)情景 2
测试用例过滤器: TestCategory=TEST1|TestCategory=TEST1|TestCategory=TEST2|TestCategory=TEST3|TestCategory=TEST4
测试源规范: **\*deployment.dll;*database.dll
仅 运行s 测试 2、测试 3、测试 4
(更新)在 Database.dll 中找不到测试
我已经在 TFS 2015.3 XAML 版本中进行了测试,但无法重现您的问题。我想在这里分享我的步骤供您参考:
我有一些项目的解决方案,其中 2 个是 UnitTest 项目(UnitTestProject1、UnitTestProject2)。
在UnitTest1项目中,我为两个测试用例添加了TestCategory,查看下面的截图:
[TestMethod()]
[TestCategory("Pro")]
public void M1Test()
{
//
}
[TestMethod()]
[TestCategory("Dev")]
public void M2Test()
{
//
}
类似Step2,在UnitTest2项目中,我为两个测试用例添加了TestCategory,如下截图:
[TestMethod()]
[TestCategory("Pro1")]
public void M3Test()
{
//
}
[TestMethod()]
[TestCategory("Dev1")]
public void M4Test()
{
//
}
在构建定义中编辑 "Test Case Filter" 和 "Test Sources Spec",如下图所示,并将构建排队:
- 测试结果符合预期。只测试UnitTestProject1中的M1Test和M2Test,UnitTestProject2中的M3Test和M4Test。
终于解决了:)
所以,我为解决这个问题所做的就是更改构建过程模板。
这个过程有一个步骤,调用:"FindMatchingFiles"
我改变这个值如下图所示。 (但是,从现在开始,我必须在使用此过程模板的所有过滤器中使用“**\*”)。此操作确保我拥有完整目标路径的程序集。
如果您有不同的解决方案,请在此处post:)
特别感谢@Cece - MSFT 的所有支持
在以下情况下需要您的帮助:
- 我有一个包含 2 个不同单元测试的项目的解决方案
- 这些项目生成 2 个不同的 dll:*deployment.dll 和 *database.dll
我有一个 TFS 构建,我想用它来 运行 这些测试,我正在使用 "Test Case Filter" 来过滤我的测试类别
(TestCategory=TEST1|TestCategory=TEST2|TestCategory=TEST3|TestCategory=TEST4)
并且在 "Test Sources Spec" 我正在过滤两个 dll (
*deployment.dll;*database.dll
)- *.deployment.dll 有测试 2、测试 3、测试 4
- *.database.dll 有 TEST1
这行不通,*database.dll 的测试没有 运行。在 Visual Studio Test Runner
中选择的测试你能帮忙吗?如果我只使用 1 个 dll 进行构建,例如 *.database.dll,TEST1 运行s well.
(更新)情景 1
测试用例过滤器: TestCategory=TEST1|TestCategory=TEST1|TestCategory=TEST2|TestCategory=TEST3|TestCategory=TEST4
测试源规范: *database.dll;*deployment.dll
只有 运行s TEST1
(更新)情景 2
测试用例过滤器: TestCategory=TEST1|TestCategory=TEST1|TestCategory=TEST2|TestCategory=TEST3|TestCategory=TEST4
测试源规范: **\*deployment.dll;*database.dll
仅 运行s 测试 2、测试 3、测试 4
(更新)在 Database.dll 中找不到测试
我已经在 TFS 2015.3 XAML 版本中进行了测试,但无法重现您的问题。我想在这里分享我的步骤供您参考:
我有一些项目的解决方案,其中 2 个是 UnitTest 项目(UnitTestProject1、UnitTestProject2)。
在UnitTest1项目中,我为两个测试用例添加了TestCategory,查看下面的截图:
[TestMethod()] [TestCategory("Pro")] public void M1Test() { // } [TestMethod()] [TestCategory("Dev")] public void M2Test() { // }
类似Step2,在UnitTest2项目中,我为两个测试用例添加了TestCategory,如下截图:
[TestMethod()] [TestCategory("Pro1")] public void M3Test() { // } [TestMethod()] [TestCategory("Dev1")] public void M4Test() { // }
在构建定义中编辑 "Test Case Filter" 和 "Test Sources Spec",如下图所示,并将构建排队:
- 测试结果符合预期。只测试UnitTestProject1中的M1Test和M2Test,UnitTestProject2中的M3Test和M4Test。
终于解决了:)
所以,我为解决这个问题所做的就是更改构建过程模板。
这个过程有一个步骤,调用:"FindMatchingFiles"
我改变这个值如下图所示。 (但是,从现在开始,我必须在使用此过程模板的所有过滤器中使用“**\*”)。此操作确保我拥有完整目标路径的程序集。
如果您有不同的解决方案,请在此处post:)
特别感谢@Cece - MSFT 的所有支持