Skip to main content

Unit test and CI

 

Starting...

This lab is to help our codes to make sure working well. Instead of manual testing for our functions, there are a lot of automatic test framwork for any languages. Since I used node js for my application, I chose jest since it looked very convenient and easy for me.

Progressing...

Jest, link, is great test frame work since it provides more than mocha and I heard it is maintained by facebook... but not sure. To use this, I installed it as a development package and simply put some scripts such as test and test:coverage. 


To be honest, for me it was not really easy as what I have heard. I need to understand the mocking function or fake implementation which made me so confused when I met it at first such as jest.fn() and mockImplementation().

To be honest, I am not a fan of test cases yet, I really have no idea for some parts how to test maybe I need more time to be familiar with it. Moreover, I think I should have not implemented the current way like a lot of features in the same function and there is no return value. Instead, I used just console log, which made me so stressed and I needed to spend a lot of time for it.


My code coverage is actually not high but it was my first time to write test cases so I am satisfied with my cases.

Next, I set CI, Continuous Integration for check any things needed. Previously as an owner, I needed to check the code and decide the modification would be accepted. But, now, those of tasks will be done by CI automatically. To activate it we need to refer this site.


Finally, The configuration file is very straight-forward. Like above, just add commands by orders. Then it will always check the correctness of any new codes added. Most of node-js projects' configuration file look very similar and it is really great since it provides various OS environment.

Concluding...

Although I did not make the test especially on different operating systems, I completely believe that the CI is very truthy. I tested a lot and made some mistakes at that time, but the CI always showed me the failure with a reason. I love CI and I will set this on my future projects. 

Comments

Popular posts from this blog

Getting more difficult?

  Release 0.2.4 Now I am at almost the end of release 0.2 and I chose the telescope as the final contribution. To be honest, this is huge, well organized and great project and it is first time to take a look. Unlike my previous assignment during the previous terms, there are tons of what I have never seen. First, docker compose is great and the document for contribution is very clear. Of course, I had no idea when read it first, but every time as my professor mentioned, there was a great guy, helper?, helping me a lot to set up the project. Although I had no idea about Elastic-search and Redis-cache server, I was happy to take a time to look though the codes and to understand. Again, trying to understand an issue is always hard for me and sometimes I am really not happy when somebody does not understand my question. This happened again. The reason why I attached the picture is that I am still confused about the whole process of this project especially about why frontend didn't get ...

Finally, release my first open source.

  Starting... This lab is to release my product to install easily. Instead of cloning or downloading and setting it up manually, it provides a lot of convenience for users to install it. I chose NPM since I used nodejs. NPM  is a great site to help develpers to release their git repository in the site.  Progressing... First, I signed up on npmjs.com and logged in the site on the console to release my repository. I had to set up a lot of things like 'npm init', modifying readme and package.json to be ready.  Second, I tried to release my repository by the command, 'npm publish --access public'. Unfortunately, the name, http-parser, was already taken, so I needed to change my name. I chose my name as http-checker and tried to release it again. At this time, I got 403, forbidden error. I spent a lot of time to figure out but it was actually due to not verified account. Once I got the verified email account, finally, I got the release version of my repository. Here is my...

Elastic search and more

  Release 0.3.1 Now it is time to learn what is Elastic search since the chosen issue is about adding more fields for our model in telescope.  This is very new for me so I was very scared when I started to work for this but now I think I am more confident. First, Elastic search is such a great supportive database especially for index search. The good thing is that it is not only the index search for whole value but, partial keyword as well. Of course, it may be wrong since I also just started to study it. Anyway, It was very careful when I read codes one line by one. Following the official document ,  I tried to add some fields, but it made some test failed so I needed to fix them. The below content is from the official document: Mapping edit Mapping is the process of defining how a document, and the fields it contains, are stored and indexed. For instance, use mappings to define: which string fields should be treated as full text fields. which fields contain numbers, dat...