Передача настройки в тест NUnit при запуске из кода? - PullRequest
1 голос
/ 20 октября 2011

Я создаю небольшое веб-приложение, которое будет размещаться в более крупной системе CMS.Целью этого приложения является проверка электронной таблицы, которая загружается и используется другой частью приложения.

Я написал несколько тестов для проверки листа, когда я занимался разработкой и планировал повторно использовать тесты в качестве валидатора.Я могу запустить тесты из кода, но не могу найти способ передать местоположение загруженной электронной таблицы в модульные тесты.

Вот код:

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if(IsPostBack)
        {
            if(SpreadsheetFile.HasFile)
            {
                string newFileName = Guid.NewGuid() + ".xlsm";
                string path = Server.MapPath("~/App_Data/" + newFileName);

                //TODO: how do I pass this in?
                SpreadsheetFile.PostedFile.SaveAs(path);
                CoreExtensions.Host.InitializeService();

                TestPackage testPackage = new TestPackage("Test");
                testPackage.Assemblies.Add(Server.MapPath("~/bin/Redacted.Tests.dll"));
                //testPackage.Settings["spreadsheet"] = path;

                TestSuiteBuilder builder = new TestSuiteBuilder();
                TestFilter filter = new NameFilter( new TestName() { Name = "RedactedTests" } );
                TestSuite suite = builder.Build(testPackage);
                TestResult testResult = suite.Run( new NullListener(), filter );

                rptResults.DataSource = testResult.Results;
                rptResults.DataBind();

                if (testResult.IsSuccess)
                {
                    ResultPlaceHolder.Text = "<span class=\"success\">Upload succeeded and all tests passed.</span>";
                }
                else
                {
                    ResultPlaceHolder.Text = "<span class=\"fail\">Upload succeeded but tests failed.</span>";
                }
            }
            else
            {
                ResultPlaceHolder.Text = "<span class=\"fail\">Upload failed.</span>";
            }


        }
     }
} 

Я былДумаете о том, чтобы динамически выписать приложение?Я делаю это неправильно?

Редактировать : немного прояснить ситуацию.Приведенный выше фрагмент кода представляет собой код ASPX, отстающий от WebForm.SpreadSheetFile - это элемент управления asp: FileUpload.Модульные тесты - это больше интеграционных тестов, так как они работают с физической таблицей.В моем тестировании я копирую это из App_Data (где электронная таблица находится в svn) в каталог, к которому может обратиться модульный тест.

Требования состоят в том, чтобы я предоставил механизм проверки электронной таблицы, а затем обновил ее в другом веб-приложении.Поэтому я подумал, что смогу повторно использовать тесты, но это выглядит не очень хорошо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...