dai-motoki / zoltraak

GNU General Public License v3.0
415 stars 47 forks source link

最低限のミニマムテストの改善 #122

Open dai-motoki opened 6 months ago

dai-motoki commented 6 months ago

テストケースの拡張と改善

概要

現在のプロジェクトにおけるテストケースは、カバレッジが十分とは言えない状況です。 プロジェクトの品質を維持し、リグレッションを防ぐためには、最低限のミニマムテストを拡充することが望ましいと考えられます。

現状の課題

改善案

  1. 重要な機能に対するミニマムテストファイルを1つ作成し、カバレッジを向上させる
  2. CIファイルを修正し、テストの自動化を進める

タスク

期待される効果

ミニマムテストファイルの例

import unittest
import subprocess

class MinimumTestCase(unittest.TestCase):
    def test_zoltraak(self):
        """zoltraakコマンドの基本的な動作テスト"""
        result = subprocess.run(["zoltraak"], capture_output=True, text=True)
        self.assertEqual(result.returncode, 0)
        self.assertIn("Zoltraak", result.stdout)

    def test_zoltraak_with_compiler(self):
        """zoltraak "〜したい" -cコマンドのテスト"""
        result = subprocess.run(["zoltraak", "テストしたい", "-c", "コンパイラ"], capture_output=True, text=True)
        self.assertEqual(result.returncode, 0)
        self.assertIn("コンパイル結果", result.stdout)

    def test_zoltraak_without_compiler(self):
        """zoltraak "〜したい" -cコマンド(コンパイラなし)のテスト"""
        result = subprocess.run(["zoltraak", "テストしたい", "-c"], capture_output=True, text=True)
        self.assertNotEqual(result.returncode, 0)
        self.assertIn("エラー", result.stderr)

    def test_zoltraak_with_custom_compiler(self):
        """zoltraak "〜したい" -cc自作コンパイラのテスト"""
        result = subprocess.run(["zoltraak", "テストしたい", "-cc", "自作コンパイラ"], capture_output=True, text=True)
        self.assertEqual(result.returncode, 0)
        self.assertIn("自作コンパイラの結果", result.stdout)