Coder Social home page Coder Social logo

teamkun / scenamatica Goto Github PK

View Code? Open in Web Editor NEW
9.0 2.0 0.0 9.76 MB

Let's enhance your PaperMC plugin quality with Scenamatica's auto testing framework: YAML-defined scenarios, CI/CD integration

Home Page: https://scenamatica.kunlab.org/

License: MIT License

Java 99.23% Python 0.77%
bukkit papermc papermc-plugin peyang scenario-test scenario-tester scenario-testing spigot spigot-plugin bukkit-plugin

scenamatica's Introduction

Scenamatica

badge badge


Enhance PaperMC plugin quality with its automation framework: YAML-defined tests, CI/CD integration.

YAMLで定義されたテスト、CI/CD統合により、PaperMCプラグインの品質を向上させます。

English

概要

Scenamaticaは、世界初の PaperMC プラグインに特化したエンドツーエンドの自動化フレームワークです。 YAML で予め定義されたマルチシナリオのテストにより、プラグインの機能正常性と異常性を自動的に検証します。 Scenamaticaの活用により、リグレッションテストをスピーディに実施でき、PaperMCプラグインの開発にエンジニアが集中できるようになります。
このプロセスにより、プラグインの品質が向上し、ユーザーと開発者、両者にとってより優れたエクスペリエンスが提供されます。 また、既存の CI/CD パイプラインに統合することで、プラグインの品質を継続的に監視できます。

特徴

  • 世界初の PaperMC プラグインに特化したシナリオテスト
    シナリオテストとは、プラグインの操作や出力をシナリオ化し、問題なく動作するかを確認するテストです。
    Scenamatica は、 PaperMC プラグインでシナリオテストの自動化を世界初で実現しました。
  • YAML で定義されたシナリオ
    YAML でシナリオを定義することで、シナリオの可読性を高め、シナリオの追加・変更を容易にします。
    面倒なテストコードを書く必要はなく、 Java/Kotlin プログラマでなくてもテストを追加できます。
  • CI/CD との統合
    GitHub Actions などの CI/CD に統合することで、プラグインの品質を継続的に監視できます。
    プルリクエストをマージする前に、テストに成功することを要求できます。

言語サポート

言語 プラグイン ドキュメント
日本語
English(US)
日本語(関西弁)

インストールと使用方法

詳しくはこちらを参照してください。

スクリーンショット

scenamatica's People

Contributors

dependabot[bot] avatar peyapeyapeyang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

scenamatica's Issues

Support for windows: Language files fail to load due to differences in path systems

Summary

For windows environment, language files fail to load due to differences in path systems.

Scenamatica 本体ではなく依存している PeyangPaperUtils が windows 環境だと正常に動作せずエラーとなっているようです。
せっかくなので windows 環境でテストコードを書きたく、Issue を切りました。Win 使っている情弱でスミマセン。

https://github.com/TeamKun/PeyangPaperUtils/blob/2b170f3592bed0fbb515d754d25b6a6bd5dbd60e/src/main/java/net/kunmc/lab/peyangpaperutils/lang/LangLoader.java#L136C2-L161

https://github.com/TeamKun/PeyangPaperUtils/blob/2b170f3592bed0fbb515d754d25b6a6bd5dbd60e/src/main/java/net/kunmc/lab/peyangpaperutils/lang/LangLoader.java#L139
の行でパスの文字列を取得していますが、win 環境では lang¥ja_JP となり、
https://github.com/TeamKun/PeyangPaperUtils/blob/2b170f3592bed0fbb515d754d25b6a6bd5dbd60e/src/main/java/net/kunmc/lab/peyangpaperutils/lang/LangLoader.java#L149
で得られる key は lang/ja_JP.lang なのでディレクトリの区切り文字が違いマッチしなくなると思われます。

Errors

[02:37:37 INFO]: [Scenamatica] Enabling Scenamatica v0.7.0
[02:37:37 INFO]: [Scenamatica] Found 3 language files in the jar file.
[02:37:39 ERROR]: Error occurred while enabling Scenamatica v0.7.0 (Is it up to date?)
java.lang.IllegalStateException: Language file "ja_JP" not found in the jar file.
	at net.kunmc.lab.scenamatica.pyglib.lang.LangLoader.loadLanguageFromJar(LangLoader.java:157) ~[?:?]
	at net.kunmc.lab.scenamatica.pyglib.lang.LangLoader.loadLanguage(LangLoader.java:131) ~[?:?]
	at net.kunmc.lab.scenamatica.pyglib.lang.LangProvider.setLanguage(LangProvider.java:93) ~[?:?]
	at net.kunmc.lab.scenamatica.Scenamatica.initLangProvider(Scenamatica.java:124) ~[?:?]
	at net.kunmc.lab.scenamatica.Scenamatica.onEnable(Scenamatica.java:63) ~[?:?]
	at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[patched_1.16.5.jar:git-Paper-794]
	at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[patched_1.16.5.jar:git-Paper-794]
	at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:500) ~[patched_1.16.5.jar:git-Paper-794]
	at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugin(CraftServer.java:518) ~[patched_1.16.5.jar:git-Paper-794]
	at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugins(CraftServer.java:432) ~[patched_1.16.5.jar:git-Paper-794]
	at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:270) ~[patched_1.16.5.jar:git-Paper-794]
	at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1074) ~[patched_1.16.5.jar:git-Paper-794]
	at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:291) ~[patched_1.16.5.jar:git-Paper-794]
	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]

System configuration

MC version: 1.16.5-R0.1-SNAPSHOT
Scenamatica version: v0.7.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.