Base class for running build files and checking results.

Provides support for quickly running a build and capturing the output.

コード例 #1
0
        public void Test_FilesInResources()
        {
            foreach (string resName in Assembly.GetExecutingAssembly().GetManifestResourceNames())
            {
                if (resName.StartsWith("XML_.Build.Files"))
                {
                    TextReader file    = new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream(resName));
                    bool       success = false;
                    string     stuff   = null;

                    try {
                        System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
                        doc.LoadXml(file.ReadToEnd());
                        Project p = new Project(doc, Level.Info, 0);
                        stuff   = BuildTestBase.ExecuteProject(p);
                        success = true;
                    } catch (Exception) {
                    } finally {
                        if (resName.IndexOf(".Invalid.") > 0)
                        {
                            if (!success)
                            {
                                stuff = "expected a failure:" + stuff;
                            }
                            success = !success;
                        }

                        Assert.IsTrue(success, resName + " " + stuff);
                    }
                }
            }
        }
コード例 #2
0
        public void Test_FilesInResources()
        {
            string buildFile = Path.Combine(_tempFolder, "default.build");

            foreach (string resName in Assembly.GetExecutingAssembly().GetManifestResourceNames())
            {
                if (!resName.StartsWith("XML_.Build.Files"))
                {
                    continue;
                }

                using (FileStream fs = File.Open(buildFile, FileMode.Create, FileAccess.ReadWrite, FileShare.Read)) {
                    byte[] buffer = new byte[8192];

                    Stream rs = Assembly.GetExecutingAssembly().GetManifestResourceStream(resName);
                    while (true)
                    {
                        int bytesRead = rs.Read(buffer, 0, buffer.Length);
                        if (bytesRead == 0)
                        {
                            break;
                        }
                        fs.Write(buffer, 0, bytesRead);
                    }
                }

                bool expectSuccess = (resName.IndexOf(".Valid.") > 0);

                try {
                    XmlDocument doc = new XmlDocument();
                    doc.Load(buildFile);
                    Project p      = new Project(doc, Level.Info, 0);
                    string  output = BuildTestBase.ExecuteProject(p);
                    Assert.IsTrue(expectSuccess, "#1: " + resName + " " + output);
                } catch (Exception ex) {
                    Assert.IsFalse(expectSuccess, "#2: " + resName + " " + ex.ToString());
                }
            }
        }