在测试应用程序中,我想在应用程序目录的用户中输出.txt文件或.etl登录。
例如,我要测试的一件事是相机的曝光度。我希望将结果以.txt文件或log .etl文件的形式返回。
grep -r 'count($analyzed_sql_results' /opt/lampp/phpmyadmin
然后在使用此Windows 10 UWP应用程序的设备上,创建的文本文件或.etl日志应包含以下字符串之一:
var exposureControl = _mediaCapture.VideoDeviceController.ExposureControl;
var outOfRangeValue = 0; // milliseconds
if (exposureControl.Min.Millieseconds > outOfRangeValue) {
textFile.add("Passed: Minimum Exposure" + exposureControl.Min.Millieseconds.ToString() + " is greater than " + outOfRangeValue.ToString()");
} else {
textFile.add("Failed: Minimum Exposure " + exposureControl.Min.Millieseconds.ToString() + " should not be less than " + outOfRangeValue.ToString() + " bc app will crash");
}
或
Passed: Minimum Exposure 0.06 is greater than 0
因此,我基本上需要充当我的伪Failed: Minimum Exposure 0.06 should not be less than 0
cmd的东西。
什么是最好的方法?
我研究了MetroLog和Serilog等记录器。还有Microsoft的日志记录示例:https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/Logging。另一个Microsoft示例:https://code.msdn.microsoft.com/windowsapps/Logging-Sample-for-Windows-0b9dffd7#content。还有这个博客的示例:http://cryclops.com/2014/01/not-so-stupid-simple-logging-for-windows-store-apps-in-cvb/
我已经尝试实现MetroLog和上面引用的两个Microsoft示例,并且我无法确定正在创建文件的位置。无论如何,我什至不确定这些方法是否是达到我想要的结果的最佳方法。
答案 0 :(得分:0)
由MetroLog
生成的文件是在应用程序的appdata folder(即C:\Users\<username>\AppData\Local\Packages\<package family name of your app>\LocalState
)中创建的。
在Windows资源管理器中展开路径时,请注意AppData
下的C:\Users\<username>
文件夹是隐藏的,因此您需要在资源管理器中选中“显示隐藏的文件”。
答案 1 :(得分:0)
如果要在没有Logger的情况下执行此操作,则可以执行以下操作:
private async Task AddTextToFile(String textToSave)
{
var appFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
var file = await appFolder.CreateFileAsync("exposure.txt",
Windows.Storage.CreationCollisionOption.OpenIfExists);
await Windows.Storage.FileIO.AppendTextAsync(file, textToSave + Environment.NewLine);
// Look in Output Window of Visual Studio for path to file
System.Diagnostics.Debug.WriteLine(String.Format("File is located at {0}", file.Path.ToString()));
}
private async void Button_Click(object sender, RoutedEventArgs e)
{
await AddTextToFile(String.Format("MinimumExposure {0}", DateTime.Now.Millisecond.ToString()));
}
正如kennyzx所说,此文件位于隐藏目录中,因此我添加了Debug.WriteLine()命令,以便在以调试模式运行应用程序时可以在Visual Studio的“输出窗口”中查看文件的位置。如果使用此代码,则可能需要删除该行。