テスト用にSeleniumを使用するUIテストスイートとフレームワークを構築しました。私のフレームワークでは、私はSetUpとTeardownを単純化するためにTestクラスに継承されたBaseTestクラスを利用しています。基本テストでは、ドライバの起動、ロガーの初期化、機能テストのためのブラウザの最大化などの作業を行います。継承されたクラス関数のGetCurrentMethod()の使用方法
私の問題は、私がロガーを初期化するときに、ロガーに名前を渡す必要があるということです。実際のテストのネームスペースと実際のテスト名を利用したいので、個々のテストのログをフィルタリングして、テストやバグの診断に役立てることができます。
[SetUp]
public void RemoteSetUp()
{
string LoggerName = GetType().Namespace + "_" + System.Reflection.MethodBase.GetCurrentMethod();
logger = LogManager.GetLogger(LoggerName);
DesiredCapabilities capabilities = DesiredCapabilities.InternetExplorer();
capabilities.AcceptInsecureCerts = true;
driver = new RemoteWebDriver(new Uri("http://10.16.199.64:4444/wd/hub"), capabilities);
driver.Manage().Window.Maximize();
}
をこれが唯一の私が正しく何をしたいの半分をやっている:
これは、私は現在、私のベースのテストがセットアップされている方法です。 LoggerNameを宣言するところでは、ベーステストの名前空間ではなくTESTの名前空間を返していますが、System.Reflection.MethodBase.GetCurrentMethod();
はBASE TESTのメソッド名を返しています。これにより、LoggerNameが[TestNamespace]_[BaseTestMethodName]
に等しくなります。
LoggerNameを[TestNamespace]_[TestMethodName]
にするにはどうすればよいですか?