相关疑难解决方法(0)

AssemblyCleanup没有开火

我有用于初始化和清理,我使用我的测试数据库的一些方法,但我的属性AssemblyInitialize和AssemblyCleanup方法不点火.

有任何想法吗?

    [TestInitialize]
    public void Init()
    {
        LoadData();
    }

    [AssemblyInitialize]
    public void AssemblyInit()
    {

    }

    public void LoadData(string testDataFileName = "TestData.xml")
    {
        connectionString = ConfigurationManager.ConnectionStrings["NDbUnit"].ConnectionString;

        mySqlDatabase = new NDbUnit.Core.SqlClient.SqlDbUnitTest(connectionString);

        mySqlDatabase.ReadXmlSchema("DataSet.xsd");
        mySqlDatabase.ReadXml(testDataFileName);

        mySqlDatabase.PerformDbOperation(NDbUnit.Core.DbOperationFlag.CleanInsertIdentity);

        dataSet = mySqlDatabase.CopyDataSet();
    }

    [AssemblyCleanup]
    public void RemoveDatabases()
    {
        List<string> databasesToDelete = new List<string>();
        ServerConnection serverConnection = new ServerConnection(new SqlConnection(connectionString));
        Server server = new Server(serverConnection);
        foreach (Database db in server.Databases)
        {
            if (db.Name.ToLower().Contains(testDatabaseIdentifier))
            {
                databasesToDelete.Add(db.Name);
            }
        }
        databasesToDelete.ForEach(x =>
        {
            Database db = new Database(server, x);
            db.Refresh();
            db.Drop(); …
Run Code Online (Sandbox Code Playgroud)

c# mstest

7
推荐指数
2
解决办法
3501
查看次数

如何在MSVS 2010中的CodedUITest中实现AssemblyInitialize/AssemblyCleanup?

我试图在我的Microsoft Visual Studio 2010中实现AssemblyInitialize/AssemblyCleanup属性,其目的与此处所述的完全相同.该链接甚至描述了我需要遵循的实现代码的过程.

这个目的的快速摘要是创建一个初始代码块,它将在任何测试之前运行,无论我在解决方案中运行哪个codedUITests,然后是在最后一个codedUITest完成之后运行的代码块.示例:我需要打开一个特定的应用程序,然后运行一系列的encodeUITests,它们都从该应用程序开始,以任何顺序执行,然后在一切完成后关闭应用程序; 这比为每个codedUITest打开/关闭应用程序更有效.

我不明白的是我需要将代码放在该页面底部(也在下面显示).我把所有代码都放在我的'公共部分类UIMap'之下并且代码运行,除了它在每个CodedUITest之前/之后运行'OpenApplication'和'CloseApplication'命令,而不是将整个CodedUITests组合在一起.

如何正确实现代码?

更新:

我昨晚发现了AssemblyI/C,我花了3个小时试图找出放置代码的位置,以便它可以工作.如果我将AssemblyInitialize放在特定测试方法的开头,那么:

1)它仍然无法运行 - 它给了我一些错误,说UIMap.OpenWindow()和UIMap.CloseWindow()方法需要是静态的,我无法弄清楚如何使它们静态.

2)具有AssemblyI/C的特定[TestMethod]是否需要在测试集中?在我的情况下,我有十几个CodedUITests需要单独运行或在更大的组中运行,我需要让AssemblyI/C打开/关闭我正在测试的窗口.

automated-tests visual-studio-2010 coded-ui-tests

0
推荐指数
1
解决办法
9037
查看次数