fabric-sdk-java基於1.0.0版本的End2endIT.java測試用例的執行
因為樓主也是才接觸區塊鏈不久只能就自己踩的坑說一下自己的解決方案,如果有什麼地方說的不對的,請留言指正。
1.環境搭建
首先在使用fabric-sdk時確保你的docker映象和環境沒有問題(特別注意版本的問題),一般在執行fabric hyperledger通過e2e-cli的測試鏈環境應該就沒有什麼問題了。如果還沒有搭建好docker環境的可以參考之前的部落格:https://mp.csdn.net/postedit/82534469
2.獲取fabric-sdk-java原始碼
在終端使用命令獲取原始碼:
git clone https://github.com/hyperledger/fabric-sdk-java.git
獲取原始碼後檢視分支如下:
使用命令進行從master切換到指定的版本:
git checkout -b v1.0.0
檢視當前所在分支:
git branch
3.解決修改一些配置和依賴
clone得到原始碼後使用IDEA開啟原始碼專案(maven方式開啟)
1.首先是外掛的安裝:
之前看很多部落格IDEA需要安裝一個出外掛Protobuf Support
主要應該也是為了解決依賴或衝突,具體我也不是很清楚
怎麼安裝:開啟Settings-->Plugins搜尋外掛名稱進行安裝,這裡就不多說,裝好外掛後重啟IDEA
2.開啟pom檔案修改部分的配置:
部落格中用的是1.1版本的,如果是用1.0.0的就可以直接參考下面的配置修改
246行註釋掉:
259行註釋掉:
38行新增<os.detected.classifier>linux-x86_64</os.detected.classifier>:
478行更改外掛的版本為2.4.1:
原始碼中使用的2.3pom檔案提示的版本有錯所以乾脆就換成了最新的版本2.4.1
3.修改ip,因為這裡是本地測試所以使用預設的localhost就可以了:
在 src/test/java/testutils/TestConfig.java檔案中的99到110行:
如果需要修改就將localhost修改為指定的ip
4.然後開啟測試用例End2endIT,所在路徑:src/test/java/sdkintegration/End2endIT.java
這時候應該會有缺包的錯誤提示:
開啟Mven Projects找到compile右鍵點選run mavne build進行編譯
編譯過後顯示BUILD SUCCESS表示編譯成功:
這時候再次開啟End2endIT就不會有錯誤提示了,之前缺少的包也正常匯入:
4.執行指令碼和測試類
到上面的操作完成後就可以開啟原始碼下的指令碼檔案進行運行了。
1.在終端切到指定路徑:cd src/test/fixture/sdkintegration
2.可以看到有一個指令碼檔案,使用./fabric.sh up進行啟動指令碼:
這裡終端會輸出很長一段日誌資訊,最後顯示
(注意:每次為了確保啟動指令碼建立容器成功,可以在執行./fabric.sh up命令前使用./fabric.sh down清空一次,之前執行e2e-cli測試用例的經驗)
3.執行指令碼沒有問題後就可盡心測試End2endIT類了:
最後出現上圖就說明測試類執行通過了,然後就可以進行後續sdk的學習了。