Beispiel #1
0
    public void Execute()
    {
        Console.WriteLine("start.");
        Console.WriteLine();

        LoadTables(CsvDir);

        //検証結果一覧tsvを生成
        GenerateTestResultTsv();


        // 説明XML/HTMLを保存、
        foreach (AsDescriptionTable adt in AsDescriptionTables)
        {
            FileInfo    outputFile = GetFileInfo(OutputXmlDir, adt.Name + ".xml");
            XmlDocument xml        = adt.ToXml();
            XmlNode     scResult   = SuccessCriteriaTable.GetSuccessCriteriaInfo(xml, adt.Name);
            xml.DocumentElement.PrependChild(scResult);

            SaveXml(xml, outputFile);
            SaveAllChildren(adt);
            FileInfo indexHtml = GetFileInfo(OutputHtmlDir, adt.Name + ".html");
            CreateHtml("index", xml, indexHtml);
        }

        // カバーページHTMLを保存
        var criteriaXml = SuccessCriteriaTable.ToXml();

        SaveXml(criteriaXml, GetFileInfo(OutputXmlDir, "success-criteria.xml"));
        CreateHtml("cover", criteriaXml, GetFileInfo(OutputHtmlDir, "index.html"));

        Console.WriteLine();
        Console.WriteLine("done.");
    }
Beispiel #2
0
//public static


    // CSVファイルから適切なCsvDataTableの派生クラスを作るファクトリメソッド
    public static CsvDataTable CreateCsvDataTable(FileInfo file)
    {
        string[][]   alldata = LoadCSV(file);
        CsvDataTable result  = null;

        try{
            if (alldata[0][0].StartsWith("テストファイルNo."))
            {
                result      = new AsDescriptionTable();
                result.Name = Path.GetFileNameWithoutExtension(file.Name);
            }
            else if (alldata[0][1].IndexOf("アクセシビリティサポーテッド検証結果") >= 0)
            {
                result = new AsTestResultTable();
            }
            else
            {
                result = new SuccessCriteriaTable();
            }
            if (result == null)
            {
                return(null);
            }
            Console.WriteLine("Load start: {0}", file.FullName);
            result.Load(alldata);
            Console.WriteLine("Loaded: {0} rows ({1} : {2})", result.Rows.Count, result.GetType(), result.Name);

            return(result);
        } catch (Exception e) {
            throw new Exception(string.Format("データが読めませんでした。{0} \n {1}", file.FullName, alldata[0][1]), e);
        }
    }
Beispiel #3
0
    // 特定ディレクトリからCsvDataTableを一気に読み込みます。
    private void LoadTables(DirectoryInfo csvDir)
    {
        FileInfo[] csvFiles = csvDir.GetFiles("*.csv");
        List <AsDescriptionTable> descTableList   = new List <AsDescriptionTable>();
        List <AsTestResultTable>  resultTableList = new List <AsTestResultTable>();

        foreach (FileInfo f in csvFiles)
        {
            CsvDataTable cdt = CsvDataTable.CreateCsvDataTable(f);
            if (cdt is AsDescriptionTable)
            {
                descTableList.Add(cdt as AsDescriptionTable);
            }
            else if (cdt is AsTestResultTable)
            {
                resultTableList.Add(cdt as AsTestResultTable);
            }
            else if (cdt is SuccessCriteriaTable)
            {
                SuccessCriteriaTable = cdt as SuccessCriteriaTable;
                // 達成基準リストXMLにはファイル有無の情報を追加する
                SuccessCriteriaTable.CheckFileExists(csvDir);
            }
        }
        AsDescriptionTables = descTableList.ToArray();
        resultTableList.Sort();
        AsTestResultTables = resultTableList.ToArray();

        //UAのリストを作成
        List <string> uaList = new List <string>();

        foreach (var table in resultTableList)
        {
            if (!uaList.Contains(table.UserAgent))
            {
                uaList.Add(table.UserAgent);
            }
        }
        UserAgentList = uaList.ToArray();

        Console.WriteLine();
        Console.WriteLine("ロードが完了しました。");
        Console.WriteLine();
        Console.WriteLine("UserAgentの一覧:");
        foreach (string s in UserAgentList)
        {
            Console.WriteLine(s);
        }
        Console.WriteLine("AsTestResultTables:");
        foreach (var table in AsTestResultTables)
        {
            Console.WriteLine("{0} ({1}rows)", table.Name, table.Rows.Count);
        }

        Console.WriteLine("Load Completed.");
    }
Beispiel #4
0
    //public static
    // CSVファイルから適切なCsvDataTableの派生クラスを作るファクトリメソッド
    public static CsvDataTable CreateCsvDataTable(FileInfo file)
    {
        string[][] alldata = LoadCSV(file);
        CsvDataTable result = null;
        try{
            if(alldata[0][0].StartsWith("テストファイルNo.")){
                result = new AsDescriptionTable();
                result.Name = Path.GetFileNameWithoutExtension(file.Name);
            } else if(alldata[0][1].IndexOf("アクセシビリティサポーテッド検証結果") >= 0){
                result = new AsTestResultTable();
            } else {
                result = new SuccessCriteriaTable();
            }
            if(result == null) return null;
            Console.WriteLine("Load start: {0}", file.FullName);
            result.Load(alldata);
            Console.WriteLine("Loaded: {0} rows ({1} : {2})", result.Rows.Count, result.GetType(), result.Name);

            return result;
        } catch (Exception e){
            throw new Exception(string.Format("データが読めませんでした。{0} \n {1}", file.FullName, alldata[0][1]), e);
        }
    }
Beispiel #5
0
    // DescriptionのXML/HTMLをすべてSaveします。
    public void SaveAllChildren(AsDescriptionTable adt)
    {
        foreach (DataRow row in adt.Rows)
        {
            string id = row[AsDescriptionTable.IdColumnName].ToString();

            XmlDocument xml = new XmlDocument()
            {
                XmlResolver = null
            };
            XmlElement root = xml.CreateElement("description");
            xml.AppendChild(root);

            // 達成基準の情報を追加
            // ほかの達成基準からも参照されている可能性があるので全てのテーブルを見る

            int count = 0;
            foreach (AsDescriptionTable otherAdt in AsDescriptionTables)
            {
                DataRow r = otherAdt.Rows.Find(id);
                if (r != null)
                {
                    XmlElement successCriteriaElement = xml.CreateElement("successCriteria");
                    XmlNode    scResult = SuccessCriteriaTable.GetSuccessCriteriaInfo(xml, otherAdt.Name);
                    root.AppendChild(scResult);

                    count++;
                }
            }

            if (count > 1)
            {
                Console.WriteLine("multiple use: {0} ", id);
            }

            string testType = GetTestTypeById(id);
            if (testType != null)
            {
                XmlElement testTypeElement = xml.CreateElement("testType");
                testTypeElement.InnerText = testType;
                root.AppendChild(testTypeElement);
            }

            root.AppendChild(adt.RowToXml(row, xml));

            XmlElement testDetail     = xml.CreateElement("testDetail");
            XmlNode    testDetailNode = GetTestDetail(id, xml);
            if (testDetail != null)
            {
                testDetail.AppendChild(testDetailNode);
                root.AppendChild(testDetail);
            }
            else
            {
                Console.Error.WriteLine("testDetailが取得できませんでした : {0}", id);
            }

            FileInfo outputXml = GetFileInfo(OutputXmlDir, id + ".xml");
            SaveXml(xml, outputXml);

            FileInfo outputHtml = GetFileInfo(OutputHtmlDir, id + ".html");
            CreateHtml("doc", xml, outputHtml);
        }
    }