Ich muss einige Komponententests einrichten, um auf UWP zu laufen. Die Komponententests arbeiten mit Dateien auf der Festplatte. Der Speicherort der Dateien ist als vollständiger Pfad konfiguriert (z. B. C: \ Temp).Dateibehandlung in UWP-Unit-Tests
Ich habe eine Unit-Test-Anwendung in Visual Studio 2015 erstellt, im Anwendungsmanifest habe ich Internet (Client), Private Networks und Wechselmedien überprüft. Ich habe auch eine Dateizuordnung für meinen Dateityp (.dat) eingerichtet.
Wenn ich die Tests ausführen bekomme ich Zugriff verweigert, wenn die Tests versuchen, die Dateien auf der Festplatte zu öffnen. Die Dateien werden mit der FileStream-Klasse geöffnet.
Ausnahmebedingungsnachricht: Testmethode UnitTests.TestMethod1 warf Ausnahme: System.UnauthorizedAccessException: Zugriff auf den Pfad 'C: \ Temp \ file.dat' wird verweigert.
Wie kann ich die Testanwendung einrichten, um beliebige Dateien auf der Festplatte zu öffnen?
Update: Dies ist ein Beispieltest:
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
// 1. Open the file using a FileStream
FileStream fs = new FileStream("C:\\Temp\\file.dat", FileMode.Open, FileAccess.Read, FileShare.Read);
// or
// 2. Open the file using UWP file API
Task<Stream> ts = GetStream();
Stream s = ts.Result;
}
async private Task<Stream> GetStream()
{
Windows.Storage.StorageFile sf = await Windows.Storage.StorageFile.GetFileFromPathAsync("C:\\Temp\\file.dat");
Stream s = await sf.OpenStreamForReadAsync();
return s;
}
}
In diesem Moment nach einer weiteren Studie, ich glaube, dass es nicht möglich ist, programmatisch beliebige Dateien auf der Festplatte zu öffnen, von einem UWP (Test) Anwendung, Sie muss eine Dateiauswahl verwenden, um eine Datei auszuwählen und sie dann zu öffnen.
Sie könnten versuchen, den Dateizugriff zu abstrahieren, so dass Sie es für Ihre Unit-Tests verspotten könnte ein [MCVE] von – Nkosi
Zeigen Sie, wie Sie versuchen, die Datei – Nkosi
Unit-Tests zuzugreifen, die die Platte schlecht getroffen sind (langsam, Zugangsprobleme, Versagen auf verschiedenen Betriebssystemen). Wenn Sie Ihren Code und Tests zeigen, könnten wir Ihnen zeigen, wie Sie die Festplatte nicht treffen. – zhon