📝

ウッキウキでnpmパッケージを公開しようとしたら403エラーが出ました(うっかり編)

に公開

こんにちは。ダイの大冒険ガチ勢のbun913と申します。

皆さんは「よーし、このツールを作って公開すれば知っている人の助けになるかもしれないぞ」と思ったことはありますか?私はあります。

今回以下の npm パッケージを公開するにあたり、うっかりミスをしてしまいましたので、せっかくなので皆さんにも共有させていただきます。

パッケージ公開までにやったこと ・ エラーの内容

今回やろうとしていたことの詳細です。私のウッキウキな頃の姿に興味がある方はご覧ください

私は今 Playwright というツールを使って、E2EテストやAPIテストの実践について学んでいます。

また、その中で TestRailというテストケースやテスト実行結果の管理を行うためのサービスに、Playwrightのテスト結果を送信することを考えました。
テストを実行するだけではなく、TestRailに必要なテストケースを作成し、その結果を蓄積しようとしていたのです。

そこで、 TestRail playwright という検索ワードで調べたところ、TestRailの公式ドキュメントにて TestRail CLIを使って集計する方法が紹介されていました。

この方法はとても良いのですが、個人的にはTypeScriptを使ってPlaywrightのテストを書く環境でPythonなどの依存関係を持ち込むのが少しだけ私個人の好みに合わないと思い、もう少しシンプルな方法を探してみました。

以前似たような課題感で newman というツールを使っている際に、Custom reporter という機能を使ってAPIテスト結果をTestRailに送信するOSSを作成したことがありました。(厳密に言うと、既存のパッケージがパブリックアーカイブになっていたため、改良版を作成したという感じです)

https://zenn.dev/moneyforward/articles/5452d526d695d0

Playwrightも同様の機能があるか調べたところ、 Custom reporters を使うことで簡単にテスト結果を集計し、任意のプラットフォームに結果を送信することができることがわかりました。

そこで、まずはシンプルな2つのユースケースに対応できるようにパッケージを作成し、CIなども含めて作成しました。

https://github.com/bun913/playwright-testrail-reporter

数時間ほどかけてある程度出来上がってきたので、npm publish というコマンドを使って自分のパッケージを公開しようとしたところ、とあるエラーが発生しました。

TypeScriptでパッケージを作成し、公開しようとして npm publish を実行したところ、以下のエラーが発生しました。

権限がおかしいのかな?などと考え、何度か npm login をやり直しましたが、解決できませんでした。

まさかと思いつつ playwright-testrail-reporter というパッケージ名で検索すると同名のパッケージがすでに公開されていることに気づきました。

https://www.npmjs.com/package/playwright-testrail-reporter?activeTab=readme

npm publishYou do not have permission to publish "playwright-testrail-reporter". Are you logged in as the correct user? というエラーが、言葉通り「あなたは playwright-testrail-reporter という名前のパッケージを公開する権限がありません」という意味で面白いですね。

\(^o^)/ テラワロス

まとめと教訓

まとめ

  • 自分の役にも誰かの役にも立つと思ってウッキウキでパッケージを作成しました
  • しかし、すでに同名のパッケージが公開されていたため、403エラーが発生しました

次回への教訓

  • 何かのツールを作る前に同様のツールがないかよく確認する必要がありますね
    • 私は testrail playwright という検索ワードでそのパッケージを見つけることができず、playwright testrail reporter という検索ワードを使えばよかったことに後で気づきました
  • ただし、私のパッケージと既存のパッケージはパラメーターの受け渡し方からして思想の違いがあり、全く同じものを作っているわけではありません
    • そのため作ったものは @bun913/playwright-testrail-reporter という名前で公開しました

https://www.npmjs.com/package/@bun913/playwright-testrail-reporter?activeTab=readme

皆さんもウッキウキになってパッケージを作り始める前に、ぜひキーワードを絞り込んで検索してみてください!

以上、ウッキウキパッケージ公開記事のはずが、教訓記事になってしまいましたが、最後までお読みいただきありがとうございました!

GitHubで編集を提案
Money Forward Developers

Discussion