
Ayrat
04.09.2018
16:30:39
у тебя ж асерёт кинет ексепшун в репл если что-то не так

Alexander ⚗
04.09.2018
16:31:04
Вот собственно с раннером я и пытаюсь разобраться. Эксепшоны не хочу, хочу красивый аутпут :3

Friedrich
04.09.2018
16:31:33

Ayrat
04.09.2018
16:31:33
тогда не понимаю чем тебя dotnet test не устроил))

Google

Grigoriy
04.09.2018
16:32:02

Ayrat
04.09.2018
16:32:06
он же ранер запускает, дискаверит тесты, гоняет, выводит красивый аутпут

Alexander ⚗
04.09.2018
16:32:25

Ayrat
04.09.2018
16:32:29
я думал тебе не хочется гонять ВСЕ тесты, тогда да, fsx делаешь и гоняешь отдельным кусками

Friedrich
04.09.2018
16:32:41

Alexander ⚗
04.09.2018
16:32:48
Поэтому хочу отказаться от dotnet test и сделать через бинарник

Grigoriy
04.09.2018
16:32:59

Alexander ⚗
04.09.2018
16:33:14
Не то, чтобы это критично. Но такое решение мне кажется более... симпатичным что ли :)

Friedrich
04.09.2018
16:33:20

Vasily
04.09.2018
16:33:43
Вообще не совсем понятно, зачем тесты пихать в докер

Friedrich
04.09.2018
16:34:26

Grigoriy
04.09.2018
16:34:28

Google

Roman
04.09.2018
16:34:48

Grigoriy
04.09.2018
16:34:58

Friedrich
04.09.2018
16:35:03

Alexander ⚗
04.09.2018
16:35:35
Ну, есть набор тестов, которые шлют всякие рест запросики и ассертят статус коды и контент. Сделано на NUnit.Framework и FsUnit для ассертов.
Солюшн — Class Library. Сейчас запускаю либо через консоль dotnet test либо через райдер с NUnit3TestAdapter

Friedrich
04.09.2018
16:35:54

Alexander ⚗
04.09.2018
16:35:54

Friedrich
04.09.2018
16:36:24

Alexander ⚗
04.09.2018
16:36:45
Вообще тесты на ф# это самодеятельность в целях проверки пригодности идеи. Так что пока я немного ограничен в ресурсах

Grigoriy
04.09.2018
16:37:28

Ayrat
04.09.2018
16:37:41
если ты хочешь порекламить F# то лучше делать максимально просто, чтобы не вызывало оторопь

Alexander ⚗
04.09.2018
16:38:02
Пока все делаю локально. Написал тесты, запустил, прогнал

Ayrat
04.09.2018
16:38:20
при этом желательно по максимум использовать доступные интеграции.
Т.е. "здесь можно делать как привыкли", а не "а чтобы сделать тест аутпут, я написал свою либу" :)

Alexander ⚗
04.09.2018
16:39:06

Friedrich
04.09.2018
16:39:10

Vasily
04.09.2018
16:39:58
И ещё расскажи, мил человек, накой тебе докер для билд агента?
Учитывая, что их обычно около трёх

Friedrich
04.09.2018
16:40:37

Vasily
04.09.2018
16:41:02

Alexander ⚗
04.09.2018
16:41:36

Google

Vasily
04.09.2018
16:41:58

Alexander ⚗
04.09.2018
16:42:05
2гб

Vasily
04.09.2018
16:42:12
И?

Alexander ⚗
04.09.2018
16:42:29
В идеале я хочу легковесный контейнер с бинарником тестов

Vasily
04.09.2018
16:42:51
Это называется overengineering
Проблем получишь больше

Alexander ⚗
04.09.2018
16:43:20
Потому что сейчас тесты на питоне в контейнере занимают не много места и если я предложу тесты на ф# в контейнере на 2гб на меня странно посмотрят :3

Ayrat
04.09.2018
16:43:33
не, ну есть консольные ранеры для nunit/xunit, но лично я, лично я, не стал бы без крайней необходимоисти их пользовать

Vasily
04.09.2018
16:44:15
Да все равно бинари с исходниками разъедутся
Зуб даю

Alexander ⚗
04.09.2018
16:45:12
Ну если при каждом пуше в репчик с тестами билдить их и складывать в реджистри то не разъедутся
Но да, тут встанет вопрос с сдк
Либо на раннер ставить либо билдить в отдельном контейнере, опять же на 2гб

Vasily
04.09.2018
16:46:53
Есть expecto ещё

Grigoriy
04.09.2018
16:47:08

Vasily
04.09.2018
16:47:28
Тебе же параметризованные тесты нужны

Ayrat
04.09.2018
16:47:34

Grigoriy
04.09.2018
16:48:01
LMGIFY :)

Ayrat
04.09.2018
16:48:17
https://stackoverflow.com/a/33919006/4346877

Google

Alexander ⚗
04.09.2018
16:48:20

Ayrat
04.09.2018
16:48:50

Alexander ⚗
04.09.2018
16:48:52
Вообще я nunit выбрал по старой памяти с с#
Есть конечно и другие фреймворки, можно их попробовать

Vasily
04.09.2018
16:50:28
Короче, тебе нужен экзешник, который из условной csv прогоняет запросы
Как я понял

Alexander ⚗
04.09.2018
16:50:50
Просто набор тестов

Vasily
04.09.2018
16:51:08
Ну без ты теряешь вариативность
И возможность подбацать без редеплоя

Ayrat
04.09.2018
16:51:29
кстати, multistage build решает твою проблему с весом
билдишь тесты в dll в полном sdk, забираешь артефакт на другой стейдж в дохлый рантайм, где исполняешь и получаешь красивый аутпут
с 2ГБ до 200мб можно ужать

Alexander ⚗
04.09.2018
16:52:44

Ayrat
04.09.2018
16:52:54
FROM microsoft/dotnet:2.0-sdk AS build
COPY . ./docker-size-test
WORKDIR /docker-size-test/
RUN dotnet build -c Release -o output
FROM microsoft/dotnet:2.0-runtime AS runtime
COPY --from=build /docker-size-test/output .
ENTRYPOINT ["dotnet", "docker-size-test.dll"]

Grigoriy
04.09.2018
16:52:56

Ayrat
04.09.2018
16:53:04

Grigoriy
04.09.2018
16:53:12
под таргет платформу
паблиш сам, что надо от рантайма возьмёт

Google

Grigoriy
04.09.2018
16:53:40
он селф-контаинед

Ayrat
04.09.2018
16:54:13

Grigoriy
04.09.2018
16:55:09
я прогнал - мы же всё равно через dotnet test собираемся запускаться

Vlad
04.09.2018
16:55:27

Grigoriy
04.09.2018
17:20:52
dotnet publish рантайм не копирует вроде
The dotnet publish command's output is ready for deployment to a hosting system (for example, a server, PC, Mac, laptop) for execution. It's the only officially supported way to prepare the application for deployment. Depending on the type of deployment that the project specifies, the hosting system may or may not have the .NET Core shared runtime installed on it.

Ayrat
04.09.2018
17:21:24
ну т.е. с каким-то флагом, оно копирнёт рантайм, да. по дефолту вроде нет

TheRainwildsKeeper
04.09.2018
17:24:03
-c=Release -r=win10-x64 например

Klei
04.09.2018
17:42:14
Есть конечно и другие фреймворки, можно их попробовать
Лень/некогда погружаться в эту девопс эпопею, но из того что понял складывается ощущение, что надо юзать Expecto. Периодически юзаю его из fsx (и не только). В нем тесты изначально являются объектами с некоторым набором свойств.

Alexander ⚗
04.09.2018
17:42:50

Klei
04.09.2018
17:48:45

Roman
04.09.2018
20:30:55
https://github.com/dbrattli/Fable.Reaction

Vladimir
04.09.2018
20:43:24
Похвастаюсь) Сделал сегодня в жирафа пуллреквест

Roman
04.09.2018
20:43:44

Grigoriy
04.09.2018
20:43:50

Vladimir
04.09.2018
20:44:06
=) посмотрим как зайдет) https://github.com/giraffe-fsharp/Giraffe.Razor/pull/7

Roman
04.09.2018
20:47:41
Делал кто пакеты для fable?
Всмысле паблишил?
Там же не дллку паблишил надо, я немного хз чего публиковать-то

Ivan
04.09.2018
20:58:58
http://fable.io/blog/Paket-integration.html