Use Relative Paths in File Upload/Downloads

I need to upload/download a file to a path relative to my test execution folder. I don't want to use an absolute file path.

Solution

This can only be done in a coded step. The key is to use this.ExecutionContext.DeploymentDirectory. This property identifies the folder the test is running in. You want to use it in a coded step to create an absolute path for file upload/download like this:

public void RelativePathDownloadStep()
{
    Directory.CreateDirectory(System.IO.Path.Combine(this.ExecutionContext.DeploymentDirectory, "download"));
    string fullPath = System.IO.Path.Combine(this.ExecutionContext.DeploymentDirectory, "download\\myfile.txt");
    Pages.ThinkbroadbandDownload.IconDownload5MBPngImage.Download(false, DownloadOption.Save, fullPath, 30000);
}
Public Sub RelativePathDownloadStep()
    Directory.CreateDirectory(System.IO.Path.Combine(Me.ExecutionContext.DeploymentDirectory, "download"))
    Dim fullPath As String = System.IO.Path.Combine(Me.ExecutionContext.DeploymentDirectory, "download\myfile.txt")
    Pages.ThinkbroadbandDownload.IconDownload5MBPngImage.Download(False, DownloadOption.Save, fullPath, 30000)
End Sub

You'll have to add an assembly reference to System.Windows.Forms.dll and to include the following line at the top of your code file to use the given sample:

using System.IO;
Imports System.IO