Problem with acceptance test in hound not starting server on port 4001

Hello everyone,

I have a problem in using hound to create a simple acceptance test following this https://shankardevy.com/phoenix-inside-out-mpf/#setting-up-hound

Even thought i followed all the instructions I am getting a failure:

mango  mix test ./test/mango_web/acceptance/homepage_test.exs\ 


  1) test presence of featured products (MangoWeb.HomepageTest)
     test/mango_web/acceptance/homepage_test.exs :7
     Assertion with =~ failed
     code:  assert page_source() =~ "Seasonal products"
     left:  "<html><head></head><body></body></html>"
     right: "Seasonal products"
     stacktrace:
       test/mango_web/acceptance/homepage_test.exs :10: (test)



Finished in 0.3 seconds
1 test, 1 failure

Also i am using phantomjs like this

phantomjs --wd

Here is the github repo with all the code i have for chapter 3 https://github.com/wolfiton/hound-problem-ch3

Thanks in advance

3 Likes

Quote form the book

if your test fails with a blank HTML body content as in the screenshot below, you most likely forgot to turn on the server for the test environment as explained above.

But i did configure it.

And i am running it like this:

First i run in a terminal tab in Ubuntu phantomjs --wd

Then in a new tab I run the test mix test ./test/mango_web/acceptance/homepage_test.exs
Opened an issue on hound github also Problem with acceptance test in hound not starting server on port 4001 in phoenix · Issue #242 · HashNuke/hound · GitHub

If anyone needs a solution to this problem follow the steps:

I assume also that you installed phantomjs using sudo apt-get install phantomjs already in Ubuntu

If you did not then don;t use step 1 the following steps are applicable

Step 1 sudo apt-get remove --purge phantomjs This command will remove phantomjs and all it’s configuration files in one go(you need root password for sudo action)

Step 2 Head over to Download PhantomJS and download the Linux 32 or Linux 64 archive
then open a terminal and navigate to where you file has been downloaded using cd(most common place is Downloads so cd ~/Downloads should do it)

Step 3 tar xjvf phantomjs-2.1.1-linux-x86_64.tar.bz2 after extraction you should get a folder with the same name

Step 4 cd ~/Downloads/phantomjs-2.1.1-linux-x86_64/bin(this can be done in one line using cp but preferred this method for clarity reasons)

Step 5 sudo cp -R./phantomjs /usr/local/bin This command copies the phantomjs executable binary to the usr/local/bin

Step 6 Verify which pahntomjs the result should be usr/local/bin/phantomjs

Now you are good to go.

Good reads and ref

https://www.linuxquestions.org/questions/linux-newbie-8/how-to-extract-a-tar-bz2-file-161371/

4 Likes