2013-04-03 13 views
8

Sto provando a eseguire alcuni test dell'interfaccia utente codificati con Visual Studio 2010 sul mio sito di SharePoint 2010. Un particolare file in SharePoint avvia la mia applicazione Silverlight in una finestra separata. Ho aggiunto l'assembly SilerlightUIAutomationHelper come riferimento in tutti i miei progetti Silverlight che eseguono questo. Questo dovrebbe permettermi di registrare le azioni all'interno di esso, ma si apre con un messaggio di errore quando si tenta di registrare all'interno della mia applicazione Silverlight:Test UI codificato non trovato SilverlightUIAutomationHelper assembly

No Silverlight controls were detected. Verify that the application under test 
is built using Silverlight assemblies with a version of 4.0 or greater and that 
a reference to the Microsoft.VisualStudio.TestTools.Extension.SilverlightUIAutomationHelper.dll 
assembly has been added to the project. 

Io corro Silverlight 5.0, in modo che non può essere il problema . Ho anche verificato che SilverlightUIAutomationHelper dll sia entrato nel pacchetto xap.

Sono stato in grado di registrare con successo queste azioni in SharePoint 2013/Visual Studio 2012 con questa estensione: http://visualstudiogallery.msdn.microsoft.com/28312a61-9451-451a-990c-c9929b751eb4

Qualsiasi idea del perché questo sta accadendo? Cosa posso fare per risolverlo?

+0

Stai utilizzando un Internet Explorer recente come suggerito nella pagina di estensione a cui sei collegato? – jv42

+0

@ jv42 Sì, ho provato questo con IE8 e 9 – tnw

+0

alcune volte i test dell'interfaccia utente codificati sono strani prova fare un clic del mouse sul controllo della luce argentata mentre cerca i controlli per vedere se lo trova. –

risposta

4

Per eseguire i test dell'interfaccia utente codificati in Silverlight 5 è necessario utilizzare l'aggiornamento dell'automatico di automazione Coded UI da qui: Visual Studio Gallery: UI Test Plugin for Silverlight Il vecchio dispositivo fornito con VS2010 funziona solo su SL4 e sotto.

SL5 è stato implementato un bit in modo diverso e ha rotto i test codificati dell'interfaccia utente, quindi chiedendo agli sviluppatori di passare a VS2012 e al nuovo plugin di automazione dell'interfaccia utente (come avete scoperto).

Una volta installato l'eseguibile UITestPluginForSilverlight.msi, è necessario fare riferimento a quegli assembly nella parte Silverlight del progetto (che si ha già).

Per quanto mi ricordo, e il motivo per cui i test dell'interfaccia utente codificati si sono interrotti in VS2010 ma funzionano in VS2012 è perché i file UIMap.designer.cs SL5 e SL4 generati dai registratori di test non sono molto compatibili con ciascuno altro.

Registrazioni SL4 Generato con l'helper di automazione SL4 non funzionerà con la versione SL5 di AutiomationHelper. Tuttavia, SL5 Autiomation Helper funzionerà con le registrazioni SL4 se tali registrazioni sono generate da VS2012.

Così da elaborare: quando si utilizza il registratore, viene creato un file UIMap. Il file di mappa ha tre porzioni ad esso:

  1. elenco XML di tutti i metodi registrati
  2. Codice generato da Progettazione Dietro classe parziale.
  3. Una classe parziale utente.

Se si ispeziona il codice generato dal progettista dietro il file, si può effettivamente capire che il registratore genera un sacco di codice per trovare i controlli e interagire con essi.

Per ogni controllo rilevato dal registratore, viene dichiarata un'istanza dell'oggetto test/interazione corrispondente.

Quando si dichiarano questi oggetti, il registratore definisce un gruppo di proprietà rilevabili/ricercabili. La volta successiva che la riproduzione viene eseguita, prende queste proprietà e le utilizza per trovare il controllo effettivo.

Inoltre, tutti i controlli hanno un padre, quindi il registratore obbligatorio specifica un elemento dell'interfaccia utente genitore per ciascun controllo rilevato.Per SL4 e SL5 i genitori sono i seguenti:

  • finestra del browser
  • pagina HTML
  • Div (tenendo premuto il runtime Silverlight)
  • SL Object (SL Runtime plugin)
  • principale SL UI Element (di solito l'indicatore Squigly buzy)
  • navigazione Frames
  • pagine interne
  • Controlli

Costruttore:

  1. genitore di controllo/Interazione Proprietà oggetto

ricerca:

  1. pagina del titolo: La stringa totale che viene reso dal titolo della finestra del browser.
  2. Numero istanza: (inizia dal 1 per le liste ... che è strano)
  3. controllo Id: (definiti dal nome o x: Nome attributi XAML)
  4. Display Name: Questo è incerto per casella combinata/lista elementi come funziona combinando tutto ciò che è reso nella voce elemento casella combinata/elenco combinato con il numero di tale voce di esempio: per esempio:

una casella combinata con due voci, che prendono il nome "lista Item" può essere scoperto dai seguenti nomi visualizzati:

"Elemento elenco: 1" e "Elemento elenco: 2"

  1. Qualsiasi combinazione e permutazione degli attributi di ricerca (è possibile cercarli).

Per farla breve, gli oggetti di interazione reali generati dai registratori sono diversi in SL4 e SL5. Ciò significa che non puoi prendere un UIMap.designer.cs e scambiarlo con un altro. Il framework di test (e gli oggetti di interazione associati utilizzati in UIMap.designer.cs) non sono compatibili con i binari. Ecco perché la tua riproduzione non può funzionare.

Problemi correlati