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ó
Elágaztathatja az MRTK-adattárat a GitHub-fiókjába.
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
- Hozzon létre egy új ágat a módosításokhoz vagy javításokhoz.
git checkout -b yourchange_fix
Nyissa meg a
MRTKDevTemplate
sablonprojektet a fájlbanUnityProjects/MRTKDevTemplate
. A projekt könnyen elérhető a Unity Hubon.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.
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.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
BaseRuntimeInputTests
a , 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 .xml
is.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