Open3

ブログとかにする前の技術検証とかその辺りのメモ

ちゅうこちゅうこ

Blazor WebAssemblyでNative Reference使うとなると、Native部分のテストがしたくなる。
というのもifdefとかで内部で処理を変えてることとかがあり、ランタイムでどうなるかみたいのがわからないことがあるから。
ってことでテストがしたいんだけど、今の所これと言った手法が見つからない。

dotnet/runtime とかではJSでケースを流し込んでやるみたいのをしていたはず(だいぶ前の話だけど、mono wasmあたりの実験的機能が公開された時はそんなコードがあった)。
bUnitはBlazor Serverとかのテストであれば行けるらしいんだけど、今回やりたいのはBlazor WebAssemblyだからちょい違う。

xUnitを見てみたらalphaだけどv3化が進んでいて、inprocでテストを行う様になりそうなのを観測している。
https://github.com/xunit/xunit/issues/2133
https://github.com/xunit/xunit/tree/main/src/xunit.v3.runner.inproc.console
https://xunit.net/docs/v3-alpha

これをBlazor WebAssembly上で動作させて、puppeteerとかで回せるようにすればテストランナーとして使えそう。
inproc.consoleをそのまま使ったらAssemblyのLocationがnullになって動作しなかった。

ってことで、xunit.v3.runner.inproc.browserみたいな感じで自分でブラウザで動作するようにやってしまえばいけるんじゃないかみたいのを考えたので、今度やってみる。

ちゅうこちゅうこ

NDIのカメラ、iOSだと有料かーふむーって思ってたら
https://github.com/satoshi0212/NDISenderExample
こんなの見つけた。

更にそれを拡張している
https://github.com/rampadc/NDISenderExample

もあるみたい。
こんな簡単に使えるのかーという感想。
適当にカメラアプリ作って、そのバッファーをSDKに投げるだけみたいだな。

MAUIで使えるようにバインディング作ってみて遊んでみようかな。

ちゅうこちゅうこ

${ProjectName}.TagHelpers.output.cache 辺りを見たら、実装したBlazor Componentのパラメータとかが見えた。
型も取れるので、ここからコード生成できそうなのでちょっと触ってみる。