Привет.
Структура. В моем текущем проекте мы эксперементировали и с папкой 'test' отдельно для тестов, и с файлами тестов в одной папке с исходниками. И командой пришли к выводу, что для нас второй вариант выглядит лучше. Так как у нас микросеврисная архитектура, то сами приложения маленькие и нет необходимости создавать отдельные папки для одного - двух файлов (например models, controllers etc).
Если у вас монолитное приложение с кучей файлов и папок, то я бы выбрал вариант с папкой `test`.
Инструменты для тестирования:
mocha (фрейморк для тестирования),
chai (ассерт либа),
sinon (для spies, stubs, mocks),
istambul (для code coverage).