흰색 테스트 코드와 테스트중인 응용 프로그램이 같은 프로세스에서 실행되는 것으로 들리는 것 같습니다.
http://white.codeplex.com/wikipage?title=Other%20questions
수있는 응용 프로그램과 동일한 과정에 흰색 테스트 실행이 화이트 FAQ 페이지에서 질문 # 9 참조 - 나는 화이트 저자 무엇을 말할 수에서
는 것을 단념?
아니요.이 모드에서 작동하지 않도록 설계되었으므로 스레딩 문제가 발생할 수 있습니다. 원칙적으로 테스트 코드가 서로 독립적으로 발전 할 때 테스트 코드와 응용 프로그램을 연결하는 것은 좋지 않습니다.
아직도, 어쩌면 아래 문서가 도움이 될 것입니다 당신이 원하는 것을 할 :
http://msdn.microsoft.com/en-us/magazine/cc163864.aspx
은 위의 문서에서의 코드를 확인 "그림 5 - 앱을 시작".
작성자의 접근 방식은 설명하는 것과 약간 비슷합니다. 코드가 어셈블리를로드하고이를 사용하여 Form 객체의 인스턴스를 만든 다음 Application.Run이 호출되도록 별도의 스레드를 시작합니다. 양식.
AUT가 실행되면 주 스레드에서 흰색을 사용하여 첨부 할 수 있습니다.
아마도이 기술을 사용하면 원하는대로 AUT를 조작 할 수 있습니다. 그냥 편의를 위해
여기 기사에서 그림 5의 : 대답, 빌에 대한
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);
}
}
감사합니다. 이것은 내가 바라는 바를 정확하게 본다. – playitcool