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:
- elenco XML di tutti i metodi registrati
- Codice generato da Progettazione Dietro classe parziale.
- 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:
- genitore di controllo/Interazione Proprietà oggetto
ricerca:
- pagina del titolo: La stringa totale che viene reso dal titolo della finestra del browser.
- Numero istanza: (inizia dal 1 per le liste ... che è strano)
- controllo Id: (definiti dal nome o x: Nome attributi XAML)
- 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"
- 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.
Stai utilizzando un Internet Explorer recente come suggerito nella pagina di estensione a cui sei collegato? – jv42
@ jv42 Sì, ho provato questo con IE8 e 9 – tnw
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. –