<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Integration Tests on Producthunt daily</title>
        <link>https://producthunt.programnotes.cn/en/tags/integration-tests/</link>
        <description>Recent content in Integration Tests on Producthunt daily</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Fri, 01 Aug 2025 15:38:22 +0800</lastBuildDate><atom:link href="https://producthunt.programnotes.cn/en/tags/integration-tests/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>nem</title>
        <link>https://producthunt.programnotes.cn/en/p/nem/</link>
        <pubDate>Fri, 01 Aug 2025 15:38:22 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/nem/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1705591878587-8c2cb45f1e91?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NTQwMzM3OTR8&amp;ixlib=rb-4.1.0" alt="Featured image of post nem" /&gt;&lt;h1 id=&#34;nemprojectnem&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/NemProject/nem&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NemProject/nem&lt;/a&gt;
&lt;/h1&gt;&lt;h1 id=&#34;nis-client&#34;&gt;NIS client
&lt;/h1&gt;&lt;p&gt;This project contains &lt;a class=&#34;link&#34; href=&#34;nis&#34; &gt;NEM Infrastructure Server&lt;/a&gt; and all its dependencies. It is the simplest way to quickly build and launch a &lt;a class=&#34;link&#34; href=&#34;https://nemproject.github.io/nem-docs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NEM node&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;package-organization&#34;&gt;Package Organization
&lt;/h2&gt;&lt;p&gt;The main folders are:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Folder&lt;/th&gt;
          &lt;th&gt;Content&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;core&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;The &lt;a class=&#34;link&#34; href=&#34;core&#34; &gt;core&lt;/a&gt; dependency.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deploy&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;The &lt;a class=&#34;link&#34; href=&#34;deploy&#34; &gt;deploy&lt;/a&gt; dependency.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;peer&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;The &lt;a class=&#34;link&#34; href=&#34;peer&#34; &gt;peer&lt;/a&gt; dependency.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;nis&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;The &lt;a class=&#34;link&#34; href=&#34;nis&#34; &gt;nis&lt;/a&gt; dependency.&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;building-the-package&#34;&gt;Building the package
&lt;/h2&gt;&lt;p&gt;The package uses &lt;a class=&#34;link&#34; href=&#34;https://maven.apache.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Apache Maven&lt;/a&gt; and  minimum required Java SDK version to build is &lt;strong&gt;Java 11&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Please make sure that the Java version is 11+ by running the following command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;java -version
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# should print sth similar to: openjdk version &amp;#34;11.0.2&amp;#34; 2019-01-15&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Build the package as usual:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mvn package
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Then check that unit tests are passing by running:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mvn &lt;span class=&#34;nb&#34;&gt;test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Optionally, check if the slower integration tests are passing by running:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mvn failsafe:integration-test
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;running-the-package&#34;&gt;Running the package
&lt;/h2&gt;&lt;p&gt;NIS nodes are configured through &lt;a class=&#34;link&#34; href=&#34;https://nemproject.github.io/nem-docs/pages/Guides/node-operation/docs.en.html#configuration&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;property files&lt;/a&gt;. Create a folder named &lt;code&gt;staging&lt;/code&gt; and add any required property files inside.&lt;/p&gt;
&lt;p&gt;Then run the node with:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;java -Xms6G -Xmx6G -cp ./staging:./nis/target/libs/*:./nis/target/* org.nem.deploy.CommonStarter
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Read the &lt;a class=&#34;link&#34; href=&#34;https://nemproject.github.io/nem-docs/pages/Guides/node-operation/docs.en.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NEM node documentation&lt;/a&gt; to know more about handling NIS nodes.&lt;/p&gt;
&lt;h3 id=&#34;running-a-testnet-node&#34;&gt;Running a testnet node
&lt;/h3&gt;&lt;p&gt;Create a &lt;code&gt;config-user.properties&lt;/code&gt; with the following properties&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# update &amp;lt;ReplaceWithYourName&amp;gt; value below&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat &amp;gt;&amp;gt; staging/config-user.properties &lt;span class=&#34;s&#34;&gt;&amp;lt;&amp;lt; EOF
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;nis.bootName = &amp;lt;ReplaceWithYourName&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;nem.network = testnet
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;nis.treasuryReissuanceForkHeight = 1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;nis.treasuryReissuanceForkTransactionHashes =
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;nis.treasuryReissuanceForkFallbackTransactionHashes =
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;nis.multisigMOfNForkHeight = 1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;nis.mosaicsForkHeight = 1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;nis.firstFeeForkHeight = 1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;nis.secondFeeForkHeight = 1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;nis.remoteAccountForkHeight = 1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;nis.mosaicRedefinitionForkHeight = 1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;contributing&#34;&gt;Contributing
&lt;/h2&gt;&lt;p&gt;Before contributing please &lt;a class=&#34;link&#34; href=&#34;CONTRIBUTING.md&#34; &gt;read the CONTRIBUTING instructions&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;getting-help&#34;&gt;Getting Help
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://nemproject.github.io/nem-docs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NEM Developer Documentation&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://nemproject.github.io/nem-docs/pages/Whitepapers/NEM_techRef.pdf&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NEM Technical Reference&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Join the community &lt;a class=&#34;link&#34; href=&#34;https://discord.gg/xymcity&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Discord server&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;If you found a bug, &lt;a class=&#34;link&#34; href=&#34;https://github.com/NemProject/nem.core/issues&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;open a new issue&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;license&#34;&gt;License
&lt;/h2&gt;&lt;p&gt;Copyright (c) 2014-2021 NEM Contributors, licensed under the &lt;a class=&#34;link&#34; href=&#34;LICENSE&#34; &gt;MIT license&lt;/a&gt;.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
