Megosztás a következőn keresztül:


Hozzájárulás az MRTK3-hoz

Az MRTK3 egy nyílt forráskódú projekt az MIT-licenc alapján. A közösségi hozzájárulásokat örömmel fogadjuk és nagyra értékeljük, mind az új funkciók, mind a hibajavítások esetében.

Az MRTK3-hoz való hozzájárulás egyszerű. Javasoljuk, hogy a MRTKDevTemplate Unity-projektet kényelmes fejlesztési tesztágyként használja, mivel már tartalmazza az összes MRTK3-csomagot helyi lemezfüggőségként. További információt az MRTKDevTemplate projekt dokumentációjában talál a mintajelenetekkel és a helyi lemezfüggőségekkel kapcsolatban.

Hozzájárulási útmutató

  1. Elágaztathatja az MRTK-adattárat a GitHub-fiókjába.

  2. Klónozza az elágaztatott MRTK-adattárat a sablonprojektből kiinduló útmutatónk alapján: Győződjön meg arról, hogy rendelkezik a szükséges eszközzel, különösen a megfelelő Unity-verzióval. Annak biztosítása érdekében, hogy a megfelelő ágon legyen, klónozza a következő paranccsal:

git clone --branch mrtk3 YOUR_GIT_URL
  1. Hozzon létre egy új ágat a módosításokhoz vagy javításokhoz.
git checkout -b yourchange_fix
  1. Nyissa meg a MRTKDevTemplate sablonprojektet a fájlban UnityProjects/MRTKDevTemplate. A projekt könnyen elérhető a Unity Hubon.

  2. Végezze el a kívánt módosításokat, és hozzon létre egységteszteket, amelyek biztosítják, hogy a módosítások a várt módon működjenek. Győződjön meg arról, hogy teszteli a szerkesztőben, és üzembe helyezi az eszközt. Véglegesítse a módosításokat az ágban. Tegye közzé ágát az elágazáshoz a felsőbb rétegben.

  3. Nyisson meg egy lekéréses kérelmet az MRTK-adattárban, amely az ágat mrtk3 célozza meg. A jobb kategorizálás és osztályozás érdekében mindenképpen írja le pontosan az elvégzett módosításokat, és alkalmazza a megfelelő címkéket a lekéréses kérelemre. Ha Ön az MRTK új közreműködője, előfordulhat, hogy alá kell írnia a hozzájárulási szerződést.

  4. A közösség vagy a karbantartási csapat által kért javítások kezelése, majd a jóváhagyás után a lekéréses kérelem egyesítése.

Tesztek írása

A tesztek kritikus szerepet jelentenek annak biztosításában, hogy az MRTK megbízható alapot nyújt a kiváló minőségű vegyes valóságú alkalmazásokhoz. A hozzáadott új funkcióknak egységtesztekkel kell rendelkezniük annak biztosítása érdekében, hogy működésük helyes maradjon, mivel a jövőben más módosítások is történnek a kódbázison.

Az egységtesztek írásához javasoljuk, hogy először vizsgálja meg a meglévő egységteszteket, és ismerje meg, hogyan használják az MRTK teszteszközöket és szimulátort az XR-bemenetek szimulálására. A kézi bevitelt, a tekintetet, a HMD pozícióját és más alapvető bemenetekkel kapcsolatos funkciókat is ki lehet modellezni. Íme néhány általános tanács a jó egységtesztek írásához:

  • Próbáljon meg részletesebb teszteket írni, amelyek kisebb funkciókat értékelnek ki a nagyobb monolitikus tesztek helyett. A részletesebb egységtesztek lehetővé teszik a karbantartók számára, hogy lássák, melyik adott funkció sérült meg. Az általánosabb, teljes körű funkciókkal kapcsolatos teszteket is nagyra értékeljük, de győződjön meg arról, hogy a funkció minden kisebb része jól tesztelve van.
  • Győződjön meg arról, hogy a teszt (és a funkció) nem feltételezi a felhasználó tájolását vagy helyét. A teszteknek és a funkcióknak bármilyen tetszőleges eltoláson vagy forgáson kell működniük a világ forrásától.
  • Ha a tesztek szimulálják a felhasználói bemenetet, győződjön meg arról, hogy alosztályba sorolja BaseRuntimeInputTestsa , amely biztosítja, hogy a megfelelő biztonsági öv be legyen állítva és le legyen bontva.
  • Az NUnit-paraméterezés használatával egyszerűen növelheti a teszt változatosságát és rugalmasságát. A paraméteres NUnit-tesztek dokumentációját itt találja.
  • Egyes bemenetek vagy interakciók regisztrálása több keretet is igénybe vehet. Ha az interakciók nem regisztrálnak, további késleltetési kereteket adhat yield return RuntimeTestUtilities.WaitForUpdates() a teszthez.
  • Próbáljon meg olyan egységteszteket írni, amelyek a lehető leggyorsabban lefutnak, hogy elkerülje a CI lassú iterálási idejét.
  • Győződjön meg arról, hogy hozzáadja a megfelelő tesztfüggőségeket a package.json, és a megfelelő hivatkozásokat a tesztmappa szerelvénydefiníciós fájljára.

Folyamatos integráció

Minden lekéréses kérelemhez automatizált tesztek tartoznak, mielőtt egyesíthetők. Más folyamatos integrációs (CI) feladatok is futnak az eredményként kapott véglegesítésen a fő fejlesztési ágon, hogy a sérült csomagok ne legyenek üzembe helyezve a hírcsatornában.

Ha a tesztek szerkesztőben haladnak át, de a CI-futtatás során sikertelenek, akkor a teszteket helyileg, kötegelt módban kell futtatnia. Bizonyos típusú tesztek váratlanul meghiúsulhatnak, ha nem grafikus kötegelt módban futnak az időzítési különbségek vagy más Unity-eltérések miatt. A tesztek kötegelt módban történő helyi futtatása segít azonosítani ezeket az inkonzisztens teszteket a CI előtt.

Tooling/Tests/run_playmode_tests.ps1 A szkript használatával helyileg futtathat teszteket kötegelt módban. Ehhez be kell zárnia a Unity-szerkesztőt.

$ ./Tooling/Tests/run_playmode_tests.ps1

A szkript kimeneti fájlokat hoz létre a mappában, beleértve a /out fájlokat és a teszteredményeket .xmlis.log. A futtatott tesztek szűréséhez adjon át egy reguláris kifejezést a szkriptnek. Az egyéni Unity-verziók és a projektmappa helye argumentumként is megadható.

$ ./Tooling/Tests/run_playmode_tests.ps1 -unityVersion 2021.3.5f1 -projectPath ../my/project/path