ranorex 자동화 테스트 프레임워크 로그
1. IreportLogger 인터페이스를 상속하는 사용자 정의 로그 클래스 정의
코드 목록 1:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Net.Mail;
using System.Net.Mime;
using System.Text;
using Ranorex;
using Ranorex.Core;
using Ranorex.Core.Testing;
namespace TextReport
{
/// <summary>
/// Description of
TextReport
.
///
ModuleType.UserCode, 1)]
public class TxtReport : IReportLogger
{
private bool success = true;
private string filename;
private List linkedResources = new List();
private int cid = 1;
private string text;
public TxtReport()
{
//Do not delete - a parameterless constructor is required!
}
public TxtReport(string fname)
{
filename=fname;
}
public bool PreFilterMessages
{
get{ return true;}
}
public void Start()
{
throw new NotImplementedException();
}
public void End()
{
//여기를 바꾸면 다시 쓰기로 변환할 수 있습니다. 그렇지 않으면 추가로 변환할 수 있습니다
//System.IO.File.WriteAllText(filename, text);
System.IO.File.AppendAllText(filename,text);
}
public void LogText(ReportLevel level, string category, string message, bool escape)
{
LogText(level, category, message, escape, new Dictionary());
}
public void LogText(ReportLevel level, string category, string message, bool escape, IDictionary metaInfos)
{
CheckSuccess(level);
text +=string.Format("[{0}][{1, -7}][{2}]: {3}", GetTimeStamp(), level, category, message);
}
public void LogData(ReportLevel level, string category, object data)
{
LogData(level, category, "Data logged.", data, new Dictionary());
}
public void LogData(ReportLevel level, string category, string message, object data, IDictionary metaInfos)
{
string dataMessage;
//special handling of Bitmap data
if (data is Bitmap)
{
Bitmap bitmap = (Bitmap)data;
//add special code to store bitmaps here -> add image to HTML email
string cidString = AddBitmapToLinkedResources(bitmap);
dataMessage = String.Format(
@"", "cid:"+ cidString, "cid:"+ cidString, message);
}
else
{
dataMessage = (data != null) ? data.GetType().ToString() : "(null)";
}
LogText(level, category, dataMessage, false, metaInfos);
}
private void CheckSuccess(ReportLevel level)
{
if (level == ReportLevel.Error || level == ReportLevel.Failure)
success = false;
}
///
///Gets a formatted time stamp string.
///
///A time stamp string.
private string GetTimeStamp()
{
return System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff", System.Globalization.CultureInfo.InvariantCulture);
}
///
///Creates a new for the given bitmap, assigns it
///a new content ID, and adds it to the linkedResources list.
///
///A bitmap.
///The content ID that was assigned to the resource.
private string AddBitmapToLinkedResources(Bitmap bitmap)
{
string cidString = "ID_"+ cid++;
AddBitmapToLinkedResources(bitmap, cidString);
return cidString;
}
///
///Creates a new for the given bitmap, assigns it
///the specified content ID, and adds it to the linkedResources list.
///
///A bitmap.
///The content ID that is assigned to the resource.
private void AddBitmapToLinkedResources(Bitmap bitmap, string cidString)
{
System.IO.MemoryStream stream = new System.IO.MemoryStream();
bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
stream.Seek(0, System.IO.SeekOrigin.Begin);
LinkedResource imageResource = new LinkedResource(stream, MediaTypeNames.Image.Jpeg);
imageResource.ContentId = cidString;
imageResource.TransferEncoding = TransferEncoding.Base64;
linkedResources.Add(imageResource);
}
}
}
2. Program 수정cs
코드 목록 2:namespace TextReport
{
class Program
{
[STAThread]
public static int Main(string[] args)
{
// Uncomment the following 2 lines if you want to automate Windows apps
// by starting the test executable directly
//if (Util.IsRestartRequiredForWinAppAccess)
// return Util.RestartWithUiAccess();
Keyboard.AbortKey = System.Windows.Forms.Keys.Pause;
int error = 0;
try
{ TxtReport txRep = new TxtReport("Report.txt");
Report.AttachLogger(txRep); error = TestSuiteRunner.Run(typeof(Program), Environment.CommandLine);
}
catch (Exception e)
{
Report.Error("Unexpected exception occurred: " + e.ToString());
error = -1;
}
return error;
}
}
}
핵심 사항:TxtReport txRep = new TxtReport("Report.txt");
Report.AttachLogger(txRep);
3. 스크립트 실행
로그 파일은\bin\debug\Report.txt에서 만들기
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
실습(KLab Server Side Camp#2)에 사용된 환경 구성법을 조사해 보십시오.이때 환경 구축은 모두 Giithub의 Codespaces에서 이루어졌기 때문에 매우 참고 가치가 있습니다. 봄방학 중 근무일인 5일,게으른 대학생, 고등학생도 쉽게 참가할 수 있기 때문에 쉽게 배정할 수 있습니다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.