我们使用TFS 2012 通过构建定义,我们从MTM测试计划中执行自动化测试。 我们如何确保TFS使用vstest.console.exe来运行每个测试? 我已经从TFS 2012的其他帖子在线阅读,您可以选择MSTest或VSTest作为测试运行者。 我还读到,如果你使用MTM,你实际上会被锁定使用测试设置文件(.testsettings),这意味着你被锁定使用MSTest。这似乎与TFS 2012相悖,为您提供了一个选择。
答案 0 :(得分:1)
Test Manager目前仅支持MsTest。这是测试管理器中的限制。同样的问题阻止您在测试用例上关联xUnit或NUnit测试自动化。
因此,虽然TFS 2012为您提供了选择,但每种选择都有其自身的一些限制。
要明确:
新的测试运行器:在持续集成中工作,您可以通过选择新的敏捷测试运行器指定要运行的测试(在TFS 2013中,这是默认模板中的固定选项,运行mstest需要模板自定义) 。它可以在构建期间运行测试,如果要在部署后运行测试,可以直接从命令行调用它。您可以使用.runsettings
file to specify certain options it should pick up。执行第三方测试框架(如NUnit,XUnit.NET,Chutzpah等)需要此选项。
MTM测试运行器:执行与测试用例工作项关联的自动化测试,或使用测试代理执行测试,以使用Team Test基础架构从远程系统运行测试。 You can use a .testsettings
file to specify certain options it should pick up.这些测试将使用MsTest执行,不能包含第三方测试框架。
在持续集成构建中,您可以配置多个测试运行,每个测试运行都可以配置为特定的测试框架。因此,您可以在构建中同时拥有这两个选项。
More on the differences and how you can use the different settings files
随着时间的推移,所有测试选项都将移至新的测试运行器。在TFS 2013中,默认情况下已删除在构建定义中配置基于MsTest的测试运行的选项。您需要自定义构建过程以选择不同的测试运行器。