이 블로그는 원래 cimetrix.com에 게시되었습니다.
Cimetrix 장비 테스트
Cimetrix EquipmentTest 소프트웨어 제품은 사용자 선호도에 따라 완전히 맞춤 설정 가능한 사용자 인터페이스를 생성하는 기능을 제공합니다. 이 사용자 인터페이스는 표준 .NET 통합 개발 환경을 사용하여 Microsoft Windows Presentation Framework(WPF)의 사용자 컨트롤로 생성되며, EquipmentTest의 기본 "테스트" 탭 다음에 별도의 탭으로 표시됩니다. 탭 헤더도 다양한 테스트 시나리오에 맞게 맞춤 설정할 수 있습니다. 플러그인 내에서 사용자 정의 GUI 탭을 개발하려면 EquipmentTest Pro 버전이 필요하다는 점에 유의하십시오.
이 기능은 다양한 사용자 유형에 유용합니다. 예를 들어, 공장에서는 장비에 대한 테스트를 연속적으로 실행하고 사용자 정의 GUI 기능을 활용하여 출력 로그를 시스템에 별도의 파일로 저장함으로써 실패 사례를 효율적으로 식별할 수 있습니다. 장비 제조업체는 이 기능을 사용하여 테스트 시나리오를 맞춤 설정하고, 이전 테스트 출력 데이터와 최신 결과를 비교할 수 있는 방식으로 결과를 분석할 수 있습니다. 다른 사용자 유형은 다양한 추가 가능성을 상상해볼 수 있으며, 이로 인해 EquipmentTest는 진정한 다목적 도구로 자리매김합니다.
플러그인에 사용자 정의 GUI 탭 추가하는 방법
필요한 만큼 GUI 탭을 추가하려면 PluginBaseModel 클래스의 OtherTabs 속성을 재정의하거나 추가할 수 있습니다. 아래 예제에는 두 경우 모두에 대한 코드 조각이 포함되어 있습니다.


다음 이미지는 커스텀 GUI가 단일 버튼을 포함하도록 수정된 두 개의 GUI 탭을 가진 일반 플러그인을 보여줍니다.
플러그인에서 맞춤형 GUI의 용도
다음 단락에서는 EquipmentTest에서 맞춤형 GUI의 두 가지 우아한 활용 사례를 논의합니다.
다른 제어판을 복제하기
EquipmentTest를 처음 사용하는 사용자라면 사용자 정의 GUI 기능을 활용하여 다른 테스트 시스템에서 익숙한 인터페이스를 재현할 수 있습니다. GUI가 WPF로 개발되었기 때문에 레이아웃과 작동 방식에 대한 유연성과 제어권이 매우 큽니다. 이는 테스트를 특정 사용자 선택에 따라 실행되도록 수정하거나, 선택된 테스트에 특화된 추가 정보를 GUI에 포함시킬 수 있음을 의미합니다. 예를 들어, 로그를 수정하여 기본 화면에 표시되는 것보다 더 많은 세부 정보를 포함시킬 수 있습니다.
다음 이미지는 TESTConnect 사용자 인터페이스와 EquipmentTest에서 재현된 GUI를 보여줍니다. 물론 정확한 복제는 아니지만, 대부분의 원래 기능은 지원될 수 있으며, 약간의 노력을 기울이면 GUI를 수정하여 완전히 일치하도록 만들 수 있습니다.


실시간 컴파일
EquipmentTest 사용자 정의 GUI 기능은 .NET의 컴파일 온 더 플라이(컴파일 시 동적 컴파일) 기능을 활용할 수 있게 합니다. 테스트 코드를 동적으로 작성하고 실행할 수 있다면, 변경이 필요할 때마다 플러그인을 편집하고 재빌드하며 로드할 필요 없이 테스트 시나리오를 변경할 수 있습니다. 이로 인해 더 빠르고 효율적인 테스트 프로세스가 가능해집니다.
아래에 정의된 "Compile" 메서드는 실행할 테스트 코드를 매개변수로 받습니다. 이후 필요한 참조를 포함한 DLL 라이브러리를 생성하기 위해 컴파일됩니다. 컴파일 오류는 "WriteLog" 이벤트 핸들러를 통해 GUI의 지정된 TextBox에 기록됩니다.

다음 이미지는 동적으로 코드를 실행하기 위한 추가 사용자 정의 제어판이 포함된 GEM 플러그인입니다. 텍스트 상자는 코드 작성을 위해 전용으로 사용되며, 다양한 버튼들은 테스트 절차를 제어하는 데 사용됩니다. 이 예제는 EquipmentTest에서 TESTConnect 스크립트의 직접 실행을 지원한 프로젝트의 일부입니다.
첫 번째 작업은 TESTConnect 스크립트의 변환된 C# 테스트 코드를 포함하는 XML 파일을 생성하는 콘솔 애플리케이션을 만드는 것이었습니다. 이 파일은 인수로 전달됩니다. 다음 작업은 XML 파일을 로드하고 아래 예시 GUI에 각 스크립트를 별도의 테스트로 표시하는 EquipmentTest 플러그인을 개발하는 것이었습니다. 이 예시는 테스트 수에 제한 없이 지원하도록 설계되었으며, "새로 만들기" 버튼을 사용하여 새 테스트를 추가할 수 있습니다. 이를 통해 메시지를 전송하고 응답 메시지가 예상된 내용인지 직접 코드를 작성하여 확인할 수 있습니다. 또한 이 예제는 메시징 코드를 재사용하기 위한 래퍼 메서드를 정의하여 유사한 사용 사례의 개발 속도를 높입니다. 콘솔 출력은 로깅용으로 지정된 텍스트 상자로 리디렉션될 수 있으며, 메시지 세부 정보를 기록하는 래퍼 메서드를 정의할 수 있습니다. 이 기능은 EquipmentTest에서 스크립팅을 효과적으로 가능하게 하지만 해결해야 할 몇 가지 단점이 있습니다. 새로운 API 메서드를 사용할 때마다 플러그인에 필요한 라이브러리 참조를 추가하고, 재빌드 및 재로드해야 테스트를 계속할 수 있습니다. 좋은 해결책은 '저장' 버튼으로, 초기 로드한 XML 파일과 유사하게 현재 변경 사항을 저장하여 라이브러리 참조 추가 후 바로 로드할 수 있게 하는 것입니다. 또 다른 문제는 Visual Studio에서 작성한 코드의 미적 감각이 EquipmentTest의 텍스트 상자와 다를 수 있다는 점입니다.
그러나 전체적인 그림은 여기서 설명한 것보다 더 큽니다. EquipmentTest를 원하는 방식으로 테스트를 실행하도록 커스터마이징할 수 있습니다. 테스트 코드를 작성할 공간이 더 필요하다면, 컴퓨터에 저장된 C# 파일에서 테스트 코드를 편집한 후 EquipmentTest에서 직접 실행할 수 있습니다. EquipmentTest GUI의 텍스트 상자에 코드를 표시할지 여부는 선택 사항입니다. 또한 생성된 출력 로그를 로컬 파일에 저장할 수도 있습니다. 이 기능을 더 깊이 탐구하는 것은 여러분의 선택입니다.

결론
이전 단락에서 사용자 정의 GUI 플러그인이 무엇이며 전용 GUI 탭을 통해 이를 활용하는 방법을 설명했습니다. 이는 EquipmentTest의 모든 사용자에게 광범위한 가능성을 열어주는 강력한 기능입니다. 이 기능을 탐색하고 활용하여 테스트 생산성을 높여 결과 도출에 필요한 전체 노력을 줄일 것을 적극 권장합니다. EquipmentTest 문서는 추가 정보를 얻기에 탁월한 자료이며, 여러분이 이 기능을 시도해 보시도록 설득했기를 진심으로 바랍니다!