使用TestExplorer(调试测试选择)输入测试时,CodedUI测试使用QualityTools命名空间的UnitTest Adapter,如此堆栈跟踪中所示。
Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter.dll!Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestExecuter.DefaultTestMethodInvoke(object[] args) Unknown
Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter.dll!Microsoft.VisualStudio.TestTools.TestTypes.Unit.DefaultTestMethodDecorator.Invoke(object[] args) Unknown
Microsoft.VisualStudio.QualityTools.CodedUITestFramework.dll!Microsoft.VisualStudio.TestTools.UITesting.CodedUITestInvoker.Invoke(object[] parameters) Unknown
Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter.dll!Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestExecuter.RunTestMethod() Unknown
Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter.dll!Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestExecuter.ExecuteTest() Unknown
Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter.dll!Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestExecuter.Execute(Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestResult result) Unknown
Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter.dll!Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestRunner.ExecuteSingleTest(Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestExecuter executer, Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestResult result, Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement test, Microsoft.VisualStudio.TestTools.Execution.ITestContext testContext, Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapterContext userContext, bool isLoadTest) Unknown
Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter.dll!Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestRunner.ExecuteSingleTest(Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestExecuter executer, Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement test, Microsoft.VisualStudio.TestTools.Execution.ITestContext testContext, Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapterContext userContext, bool isLoadTest) Unknown
Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter.dll!Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestRunner.Run(Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement test, Microsoft.VisualStudio.TestTools.Execution.ITestContext testContext, bool isLoadTest, bool useMultipleCpus) Unknown
[AppDomain (QTAgent32.exe, #1) -> AppDomain (TestAppDomain: adad0b78-8b62-491f-8c88-b41c3e647a1f, #2)]
Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter.dll!Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapter.Run(Microsoft.VisualStudio.TestTools.Common.ITestElement testElement, Microsoft.VisualStudio.TestTools.Execution.ITestContext testContext, bool isLoadTest) Unknown
Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter.dll!Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapter.Run(Microsoft.VisualStudio.TestTools.Common.ITestElement testElement, Microsoft.VisualStudio.TestTools.Execution.ITestContext testContext) Unknown
Microsoft.VisualStudio.QualityTools.AgentObject.dll!Microsoft.VisualStudio.TestTools.Agent.AgentExecution.CallAdapterRunMethod(object obj) Unknown
TestContext属性具有一些暴露属性,我们可以在其中更改某些行为。
每个CODEDUI类必须使用此attribute才能使用Test Runner和Load Tests et.al.找到"发现"装配中的测试。
这似乎是" CodedUI"框架运行减去一个小细节。进入Codedui测试后,将同步执行一组步骤。在最后一步执行时,"运行"自动终止。如果没有进行断言,测试会自动通过。等等。
但是如何控制测试结束时呢?有没有人知道一种方法来挂钩异步任务(暗示延迟回调)并阻止测试完成,直到继续发生。
我猜测并且测试表明CodeUI的当前支持是一切都必须是同步的。
这是我对此的想法,我可以从测试运行器开始Async测试。测试运行器完成,此测试通过指示异步测试已启动。完成后,我可以重新开始自动测试。
所以问题归结为:我如何从外部开始自动化测试?这将导致工作设计,因为我知道当测试运行完成时,任何异步测试都标记为完成。它甚至会杀死所有异步工作......这意味着这些线程必须在测试运行程序进程中。
答案 0 :(得分:1)
引用程序集并调用测试方法。
答案 1 :(得分:0)
@echo off set max = .set count =。 echo开始测试执行 echo ======================= " C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ mstest.exe" /testcontainer:E:\Practice\TestingSample\TestingSample\bin\Debug\TestingSample.dll / test:fn_TestMethod1 / test:fn_TestMethod2 /resultsfile:E:\SachintestResAut3.trx"
" C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ mstest.exe" /testcontainer:E:\Practice\TestingSample\TestingSample\bin\Debug\TestingSample.dll / test:fn_TestMethod2 /resultsfile:E:\SachintestResAut3.trx"
回应所有完成 @exit