2015-03-25 1 views
0

Les tests CodedUI utilisent l'adaptateur UnitTest de l'espace de noms QualityTools comme indiqué dans cette trace de pile lors de l'entrée d'un test à l'aide de TestExplorer (sélection de test de débogage).Comment démarrer un test automatisé (Codedui) en externe?

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 

Les TestContext propriétés ont des propriétés exposées dont nous pouvons changer certains comportements.

Chaque classe CODEDUI doit utiliser cette attribute pour Test Runner, et Load Tests et.al. "Trouver" les tests dans un assemblage.

Cela semble être la façon dont le cadre «CodedUI» fonctionne moins un petit détail. Lors de l'entrée dans un test Codedui, un ensemble d'étapes est exécuté de manière synchrone. Lors de la dernière étape en cours, cette instance de "run" est automatiquement terminée. Les tests passent automatiquement si aucune affirmation n'est faite. etc. etc.

Mais qu'en est-il de prendre le contrôle de la fin du test? Est-ce que quelqu'un sait d'un moyen de brancher une tâche asynchrone (rappel retardé implicite) et retarder l'achèvement du test jusqu'à ce que la continuation s'est produite.

Je devine et les tests ont montré que le support actuel de CodeUI est que tout doit être synchrone.

Voici mes réflexions à ce sujet, je pourrais commencer le test Async du testeur. Le testeur est terminé et ce test est passé, indiquant que le test Async a démarré. À la fin, je pourrais recommencer un test automatisé. Donc, la question se résume à ceci: Comment puis-je démarrer un test automatisé en externe? Cela conduira à la conception de travail que je sais que tout test asynchrone est marqué complet lorsque le coureur de test est terminé. Il tue même tout le travail asynchrone ... ce qui signifie que ces threads doivent être sous le processus de coureur de test.

Répondre

1

Référencez l'assemblage et appelez la méthode de test.

+0

C'est peut-être la solution que je recherche pour exécuter des tests ou des méthodes asynchrones "dans" ou "à côté" de l'environnement d'exécution de test. Je posterai plus d'infos une fois que je serai un peu plus loin. Merci! –

+0

J'aurais été plus explicatif, mais je n'ai pas eu assez de temps hier, je suis content que vous ayez eu le concept de toute façon. – user4388177

+1

NP mec, je suis convaincu que je suis sur le chemin de comprendre comment écrire des tests asynchrones ... (grâce à votre aide). C'est quelque chose que le framework ne supporte pas actuellement. Je posterai la solution bientôt. –

0

@echo off set max = .set count =. exécution du test de début d'écho 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 Fichiers (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 "

echo tout fait @exit