Il semble que ce que vous décrivez est l'exécution de votre code de test blanc et l'application testée dans le même processus - est-ce le cas?
D'après ce que je peux dire à l'auteur blanc dissuade que - voir la question 9 sur cette FAQ Blanc page:
http://white.codeplex.com/wikipage?title=Other%20questions
Can test blanc dans le même processus que l'application?
Le blanc n'est pas conçu pour fonctionner dans ce mode car cela peut entraîner des problèmes de filetage. En principe, ce n'est pas une bonne idée de coupler le code de test avec l'application sous le code de test car ils évolueraient indépendamment les uns des autres.
encore, peut-être l'article ci-dessous vous aidera à faire ce que vous voulez:
http://msdn.microsoft.com/en-us/magazine/cc163864.aspx
Dans l'article ci-dessus, vérifiez le code "Figure 5 - Lancement de l'application". L'approche de l'auteur ressemble un peu à ce que vous décrivez - son code semble charger un assemblage, l'utiliser pour créer une instance d'un objet Form, puis lancer un thread séparé dans lequel Application.Run est appelé pour lancer la forme.
Une fois que votre AUT est en cours d'exécution, vous devriez pouvoir vous y attacher en utilisant Blanc dans le fil principal.
Peut-être que cette technique vous permettra de commencer à manipuler l'AUT comme vous l'espériez?
Juste pour la commodité est ici la figure 5 de l'article:
static Form LaunchApp(string exePath, string formName)
{
Thread.Sleep(delay);
Assembly a = Assembly.LoadFrom(exePath);
Type formType = a.GetType(formName);
Form resultForm = (Form)a.CreateInstance(formType.FullName);
Thread t = new Thread(new ThreadStart(new AppState(resultForm).RunApp));
t.ApartmentState = ApartmentState.STA;
t.IsBackground = true;
t.Start();
return resultForm;
}
private class AppState
{
public AppState(Form f) { FormToRun = f; }
public readonly Form FormToRun;
public void RunApp()
{
Application.Run(FormToRun);
}
}
Merci pour la réponse, le projet de loi. Cela ressemble précisément à ce que j'espérais faire. – playitcool