title,body,link,tags,view_count,is_answered,score,answer_count
SVG comparison (regression testing),"<p>I am searching for the most optimal way to compare svg files that come as an output of SpecFlow tests of the C# project I am working on. The goal is that after implemented functionality I can compare all files created before and after and pinpoint the parts of svg that were changed, or make sure that files remained the same. Note that there are some hidden objects rendered, so pixel-by-pixel comparison of the files would not work.</p>

<p>Is there any existing tool where I can upload two files (before and after changes and have both of the images displayed, but also see the changes in the xml structure?</p>

<p>Is there any existing library for C# that does this, so I can implement automatic regression tests (in case I would like that output remains the same)? </p>
",https://stackoverflow.com/questions/42806281/svg-comparison-regression-testing,"['c#', 'svg', 'regression-testing']",634,False,2,0
Regression testing in rails using rspec,"<p>I know that Rspec is a tool for testing, it covers BDD and TDD in rails,it tests the business logic of application with controller and model tests. My Rails app has almost full coverage (around 85%-90%) with model and controller tests but still someone said that regression testing is not being performed on my application. </p>

<p>I have following concerns regarding rspecs :</p>

<ol>
<li>Can we call combinations of model specs and controllers specs as integration testing? (i think yes but still want to confirm)</li>
<li>Can we call combination of model specs and controller specs as regression testing? </li>
<li>Feature specs written with cypybara can only be considers as regression testing? </li>
</ol>
",https://stackoverflow.com/questions/44551423/regression-testing-in-rails-using-rspec,"['ruby-on-rails', 'capybara', 'integration-testing', 'rspec-rails', 'regression-testing']",982,False,0,1
How is regression testing done in scala using sbt?,"<p>I have many projects in a scala application that have classes in main/ and the unit tests in test/. Say the project is on version 0.2. I'd like to be able to run the tests in test/ with a version 0.1's classes that were in main/.</p>

<p>Is there a way to do it in sbt?</p>
",https://stackoverflow.com/questions/44571653/how-is-regression-testing-done-in-scala-using-sbt,"['scala', 'sbt', 'regression-testing']",242,False,0,1
How often do Libraries change? Do Libraries need regression testing as much as programs do?,"<p>I read it in a research paper published on IEEE which said that libraries dont change often and hence dont need much of regression testing. I wanted someone to verify the statement.
Also, it said that Randoop was earlier developed and evaluated on libraries. Can someone verify that?</p>
",https://stackoverflow.com/questions/43525059/how-often-do-libraries-change-do-libraries-need-regression-testing-as-much-as-p,"['testing', 'junit', 'regression-testing', 'randoop']",53,True,0,1
How can I know that TestNG framework is suitable to perform test case prioritization in regression testing?,"<p>I have a requirement to know that, whether TestNG framework is suitable for test case prioritization in regression testing to increase the fault rate detection or not? Which also enhance the performance of coverage based techniques based on the correlation value.</p>
",https://stackoverflow.com/questions/41458619/how-can-i-know-that-testng-framework-is-suitable-to-perform-test-case-prioritiza,"['testcase', 'regression-testing', 'testng-eclipse']",103,False,0,0
Regression testing in rails using rspec,"<p>I know that Rspec is a tool for testing, it covers BDD and TDD in rails,it tests the business logic of application with controller and model tests. My Rails app has almost full coverage (around 85%-90%) with model and controller tests but still someone said that regression testing is not being performed on my application. </p>

<p>I have following concerns regarding rspecs :</p>

<ol>
<li>Can we call combinations of model specs and controllers specs as integration testing? (i think yes but still want to confirm)</li>
<li>Can we call combination of model specs and controller specs as regression testing? </li>
<li>Feature specs written with cypybara can only be considers as regression testing? </li>
</ol>
",https://stackoverflow.com/questions/44551423/regression-testing-in-rails-using-rspec,"['ruby-on-rails', 'capybara', 'integration-testing', 'rspec-rails', 'regression-testing']",982,False,0,1
How can I know that TestNG framework is suitable to perform test case prioritization in regression testing?,"<p>I have a requirement to know that, whether TestNG framework is suitable for test case prioritization in regression testing to increase the fault rate detection or not? Which also enhance the performance of coverage based techniques based on the correlation value.</p>
",https://stackoverflow.com/questions/41458619/how-can-i-know-that-testng-framework-is-suitable-to-perform-test-case-prioritiza,"['testcase', 'regression-testing', 'testng-eclipse']",103,False,0,0
How often do Libraries change? Do Libraries need regression testing as much as programs do?,"<p>I read it in a research paper published on IEEE which said that libraries dont change often and hence dont need much of regression testing. I wanted someone to verify the statement.
Also, it said that Randoop was earlier developed and evaluated on libraries. Can someone verify that?</p>
",https://stackoverflow.com/questions/43525059/how-often-do-libraries-change-do-libraries-need-regression-testing-as-much-as-p,"['testing', 'junit', 'regression-testing', 'randoop']",53,True,0,1
Why is PhantomCSS moving the HTML elements around?,"<p>Problem: when I use a visual regression testing tool such as PhantomCSS, the screenshots produced contain the website with dramatically moved HTML elements.</p>

<p>Problem image:
<img src=""https://i.imgur.com/OsTQ4wX.png"" alt=""Image of &lt;nav&gt; by PhantomCSS""></p>

<p>How it should really look like: (taken from esfiddle.net )</p>

<p><img src=""https://i.imgur.com/72bbSlY.png"" alt=""Actual &lt;nav&gt;""></p>

<p>Tools: PhantomCSS. The same problem happens with BackstopJS.</p>

<p>What can I do to prevent the problem image?</p>
",https://stackoverflow.com/questions/45653626/why-is-phantomcss-moving-the-html-elements-around,"['testing', 'web', 'phantomjs', 'regression-testing', 'backstop.js']",88,False,1,2
Getting Attribute using xpath in selenium,"<p>I have been looking for an XPath code to get the value of the attribute of an HTML element as part of my regression testing. Can anyone please help</p>

<p>the attribute value is dynamic changes for every next webelement</p>

<p>below is the HTML code</p>

<pre><code>&lt;figcaption id=""recentVideosvideoname0"" data-videono=""xZA6FJ32Twe2GQYEuBHJnQ=="" title=""test for test"" class=""caption""&gt;test for test&lt;/figcaption&gt;
</code></pre>

<p>i want attribute : <code>data-videono</code></p>

<p>I have tried something like this</p>

<pre><code>By.xpath((""//div[contains(@id,'recentVideos')]/div/a/figure/figcaption""));
</code></pre>
",https://stackoverflow.com/questions/45324231/getting-attribute-using-xpath-in-selenium,"['selenium', 'xpath']",4186,False,-3,4
The Format of Mutation Generation of PIT Tool,"<p>I am interested in mutation testing and I want to generate faults in code with mutation testing tools and I found PIT.
Besides I am reading a paper about regression testing and it gave the experimental data on its site. On of the data is the output of PIT which is the faults in this format:</p>

<pre><code>com.notnoop.apns.PayloadBuilder:&lt;init&gt;:()V:55:12:0
</code></pre>

<p>or</p>

<pre><code>com.notnoop.apns.PayloadBuilder:insertCustomAlert:()V:377:14:0
</code></pre>

<p>and etc</p>

<p>But I don't understand the format of the output and what it is.</p>

<p>Could you please help me?</p>
",https://stackoverflow.com/questions/42682448/the-format-of-mutation-generation-of-pit-tool,"['java', 'testing', 'regression-testing', 'mutation-testing', 'pitest']",77,True,0,1
Serenity BDD reports filenames,"<p>I am using the Serenity BDD tool Version 1.2.1-rc.3 with JUnit 4 to automate some regression testing. The project is working fine so far but I want to be able to rename the generated reports. At the moment they are called something like this: </p>

<p><em>62e91fe28f676d9f760e63756d4ba1d2.html</em> </p>

<p>I want them to be named after the testcase creating them. I have not seen anything about this in the Serenity Reference Manual nor elsewhere I could think of. I even added <code>serenity.compress.filenames=false</code> to <code>serenity.properties</code> and it doesn't work. </p>

<p>Any help would be appreciate</p>
",https://stackoverflow.com/questions/41899324/serenity-bdd-reports-filenames,"['selenium', 'serenity-bdd']",707,True,1,1
emacs vc-print-log show all git commits,"<p>I have a problem with them emacs <code>vc-print-log</code> function, it doesn't always show what I want to see.</p>
<h1>Setup</h1>
<pre><code># Initialize a folder with 3 bogus files (a, b and c)
$ mkdir rep &amp;&amp; cd rep
$ echo a&gt;a ; echo b&gt;b ; echo c&gt;c

# Initialize a git repository with 3 bogus commits (a, b and c)
$ git init .
$ git add a &amp;&amp; git commit -m 'a'
$ git add b &amp;&amp; git commit -m 'b'
$ git add c &amp;&amp; git commit -m 'c'
</code></pre>
<p>The head is now on <code>c</code>. I can move the head back to do some regression testing:</p>
<pre><code># Check out an older revision
$ git checkout HEAD~1
</code></pre>
<p>The head is now on <code>b</code>, but I can still view the commit <code>c</code> using this command-line:</p>
<pre><code>$ git log --all --oneline --decorate --graph
* 6d269bf (master) c
* f75259d (HEAD) b
* aa89842 a
</code></pre>
<h1>With Emacs</h1>
<p>When I'm using emacs, I often use the key binding <code>C-x v l</code> (<code>vc-print-log</code>) to view all the changes to a file. But if I use <code>vc-print-log</code> on the <code>rep</code> directory then it only show me commits <code>a</code> and <code>b</code>, not <code>c</code>.</p>
<pre><code>*  (HEAD)f75259d..: Oli L 2017-12-01 b
* aa89842..: Oli L 2017-12-01 a

Show 2X entries    Show unlimited entries
-UUU:%%--F1  *vc-change-log*   All (4,41)     (Git-Log-View from rep) ---------
</code></pre>
<p>Is there a way to view all commits in emacs?</p>
<p>Thanks :)</p>
",https://stackoverflow.com/questions/47595520/emacs-vc-print-log-show-all-git-commits,"['git', 'emacs']",186,False,2,0
Long running unit test marked as passed fails TFS build - Object &#39;xxx.rem&#39; has been disconnected or does not exist at the server.**,"<p>I want to utilize TFS and MSTest for regression testing. I have a few long running unit tests (<strong>10+ minutes</strong>). The unit tests can be run successfully locally on developer's machine inside VS2017. The unit test were shown as passed on TFS2017. However the build was marked as failed. This problem looks like a timeout to me between the executor and the unit test. Is there a way to increase the timeout setting in TFS? Any other ideas to fix the build?</p>

<p>2017-11-28T14:01:00.8504854Z ##[error]Error: An exception occurred while invoking executor 'executor://mstestadapter/v2': <strong>Object '/fe158daa_975c_4c26_818d_b79d26604456/ekqkfvms170qdx3bql9dzzy2_318.rem' has been disconnected or does not exist at the server.</strong></p>
",https://stackoverflow.com/questions/47534593/long-running-unit-test-marked-as-passed-fails-tfs-build-object-xxx-rem-has-b,"['unit-testing', 'tfs', 'mstest']",239,True,1,1
Is partial mocking of a security a good practice?,"<p>I am introducing automatic testing using NUnit, NSubstitute for a project which uses Ninject and generic repositories.</p>

<p>For regression testing, I am replacing generic repositories with in memory ones to prevent working with a database.</p>

<p>Also, to test security constraints of services, I am mocking the security service which looks like this:</p>

<pre><code>public class SecurityService : ISecurityService
{
    #region Properties
    private IScopedDataAccess DataAccess { get; }
    private IMappingService MappingService { get; }
    #endregion

    #region Constructor
    public SecurityService(IScopedDataAccess scopedDataAccess, IMappingService mappingService)
    {
        DataAccess = scopedDataAccess;
        MappingService = mappingService;
    }

    #endregion

    #region Methods
    public virtual string GetUsername()
    {
        return HttpContext.Current.User.Identity.Name;
    }

    public AppUserSecurityProfileServiceModel GetCurrentUserData()
    {
        var username = GetUsername();
        var userDataModel = DataAccess.AppUserRepository.AllNoTracking.FirstOrDefault(u =&gt; u.Username == username);
        if (userDataModel == null)
            return null;

        var ret = MappingService.Mapper.Map&lt;AppUserSecurityProfileServiceModel&gt;(userDataModel);
        return ret;
    }

    public virtual int GetCurrentUserId()
    {
        var userData = GetCurrentUserData();
        if (userData == null)
            throw new SecurityException($""No user data could be fetched for - {GetUsername()}"");

        return userData.AppUserId;
    }

    public bool IsInRole(UserRoleEnum role, int? userId = null)
    {
        int actualUserId = userId ?? GetCurrentUserId();

        var hasRole = DataAccess.AppUserXUserRoleRepository.AllNoTracking.Any(x =&gt; x.AppUserId == actualUserId &amp;&amp; x.UserRoleId == (int) role);
        return hasRole;
    }

    public bool CanPerformAction(UserActionEnum action, int? userId = null)
    {
        int actualUserId = userId ?? GetCurrentUserId();

        var hasAction = DataAccess.AppUserXUserRoleRepository.AllNoTracking
            .Where(x =&gt; x.AppUserId == actualUserId)
            .Join(DataAccess.UserRoleRepository.AllNoTracking, xRole =&gt; xRole.UserRoleId, role =&gt; role.UserRoleId, (xRole, role) =&gt; role)
            .Join(DataAccess.UserRoleXUserActionRepository.AllNoTracking, xRole =&gt; xRole.UserRoleId, xAction =&gt; xAction.UserRoleId,
                (role, xAction) =&gt; xAction.UserActionId)
            .Contains((int) action);

        return hasAction;
    }

    // other methods can appear here in the future
    #endregion
}
</code></pre>

<p>Each regression test fakes current user like this:</p>

<pre><code>public void FakeCurrentUser(int userId)
{
    var userRef = DataAccess.AppUserRepository.AllNoTracking.FirstOrDefault(u =&gt; u.AppUserId == userId);

    var securitySubstitude = Substitute.ForPartsOf&lt;SecurityService&gt;(Kernel.Get&lt;IScopedDataAccess&gt;(), Kernel.Get&lt;IMappingService&gt;());

    securitySubstitude.When(x =&gt; x.GetUsername()).DoNotCallBase();
    securitySubstitude.GetUsername().Returns(userRef?.Username ?? ""&lt;none&gt;"");
    securitySubstitude.When(x =&gt; x.GetCurrentUserId()).DoNotCallBase();
    securitySubstitude.GetCurrentUserId().Returns(userId);

    Kernel.Rebind&lt;ISecurityService&gt;().ToConstant(securitySubstitude);
}
</code></pre>

<p>Basically, it takes care to replace methods that are based on the context (i.e. <code>HttpContext</code> in my case), but leaves other method intact.</p>

<p>Each tested service will be instantiated after this initialization, so I am sure that the appropriate instance is injected.</p>

<p><strong>Question: is it OK to mock the service like this or is it an anti-pattern?</strong></p>
",https://stackoverflow.com/questions/41765325/is-partial-mocking-of-a-security-a-good-practice,"['mocking', 'nsubstitute', 'regression-testing', 'ninject-mockingkernel']",48,True,0,1
Looping through links(stories) and taking screenshots,"<p>What I'm trying to do here is loop through Storybook stories so I can perform visual regression testing on them:</p>

<pre><code>const puppeteer = require('puppeteer');
const { toMatchImageSnapshot } = require('jest-image-snapshot');
expect.extend({ toMatchImageSnapshot });

test('no visual regression for button', async () =&gt; {
  const selector = 'a[href*=""?selectedKind=Buttons&amp;selectedStory=""]';
  const browser = await puppeteer.launch({headless:false, slowMo: 350});
  const page = await browser.newPage();
  await page.goto('http://localhost:8080');


const storyLinks = await page.evaluate(() =&gt; {
  const stories = Array.from(document.querySelectorAll('a[href*=""?selectedKind=Buttons&amp;selectedStory=""]'));
  const links = stories.map(story =&gt; story.href);
  return links;
});
 await storyLinks.forEach( (storyLink) =&gt; {
   page.goto(storyLink).then(async (res,rej) =&gt; {
     const screen = await page.screenshot();
     return await expect(screen).toMatchImageSnapshot();
   });
 });

 await browser.close();
});
</code></pre>

<p>One problem is that I get this because of the <code>await broswer.close()</code> that isn't waiting for everything to finish:</p>

<pre><code>Protocol error (Page.navigate): Target closed.

      at Session._onClosed (../../node_modules/puppeteer/lib/Connection.js:209:23)
      at Connection._onClose (../../node_modules/puppeteer/lib/Connection.js:116:15)
      at Connection.dispose (../../node_modules/puppeteer/lib/Connection.js:121:10)
      at Browser.close (../../node_modules/puppeteer/lib/Browser.js:60:22)
      at Object.&lt;anonymous&gt;.test (__tests__/visual.spec.js:24:16)
          at &lt;anonymous&gt;
</code></pre>

<p>This happens for each storyLink except the first. </p>

<p>If I comment out the <code>await browser.close()</code> line, the screenshots are being taken, but not in the expected wait. Instead of each story having one screenshot, the last story is being screenshotted for the amount of stories. For example, I've got 4 stories in total, but I will have 4 screenshots of the last story instead of one for each story.</p>

<p>I don't understand why this behaviour is happening. The storyLinks returned from the page.evaluate funtions are correct, but then everything breaks and I've got no idea why.</p>

<p>Any ideas?</p>
",https://stackoverflow.com/questions/46912940/looping-through-linksstories-and-taking-screenshots,['puppeteer'],6187,True,6,1
"Free Image database, behind website","<p>I am working on a University project.
I have developed a test harness, one of the features of the test harness is visual regression testing.</p>

<p>I am developing a basic website, as a means to displays these generated images programmatically.  </p>

<p>My original idea was to use a mongodb database, however after some reading many people advise not using mongodb to store images.</p>

<p>I then tried to use google drive and drop box, however they do not facilitate permanent url's to the stored images. Or in the case of dropbox, these urls are random so not programmatic. </p>

<p>I need to find a way to store these images, programmatically store them using a nodeJS script, programmatically access them using JS.</p>

<p>Any ideas?</p>
",https://stackoverflow.com/questions/41912247/free-image-database-behind-website,"['javascript', 'node.js', 'image', 'mongodb', 'web']",52,False,-1,1
Camel update to 2.17.1 cause 404 on Servlet,"<p>I am using Camel with Tomcat and Spring. I was using Camel <code>2.15.0</code> and updated to <code>2.17.1</code>. I did not make any other changed to my <code>web.xml</code> but now the test that I run to hit the endpoint (running in a Tomcat container) is getting a 404. The Tomcat log just shows <code>""POST / HTTP/1.1"" 404</code>. Is there a difference in how Camel 2.17 deals with the Servlet component?</p>

<p>My web.xml:</p>

<pre><code> &lt;!-- Camel servlet --&gt;
 &lt;servlet&gt;
   &lt;servlet-name&gt;http-ingest&lt;/servlet-name&gt;
   &lt;servlet-class&gt;org.apache.camel.component.servlet.CamelHttpTransportServlet&lt;/servlet-class&gt;
   &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
 &lt;/servlet&gt;

 &lt;!-- Camel servlet mapping --&gt;
 &lt;servlet-mapping&gt;
    &lt;servlet-name&gt;http-ingest&lt;/servlet-name&gt;
    &lt;url-pattern&gt;&lt;/url-pattern&gt;
 &lt;/servlet-mapping&gt;
</code></pre>

<p>My RouteBuilder:</p>

<pre><code>from(""servlet://*?servletName=http=ingest"")
      ...
</code></pre>

<p><strong><em>Update</em></strong></p>

<p>So I did some regression testing, I compiled an old version of my project which uses camel 2.15.0 and my HTTPS test works fine. Then the ONLY change I made was to update the camel version to 2.17.1, recompiled, deployed and reran the test. With 2.17.1 I get the 404. Again, I made NO OTHER CHANGE besides changing the camel version in my pom.</p>
",https://stackoverflow.com/questions/41701335/camel-update-to-2-17-1-cause-404-on-servlet,"['tomcat', 'servlets', 'apache-camel']",478,True,1,1
Fake the current date/timestamp in DB2 LUW for testing,"<p>For (non regression) testing purpose, I frequently need to make DB2 LUW return a ""fake"" current date.
This is of course due to application code that rely on the current date / timestamp , and which will behave differently  when run during a different date.</p>

<p>We have the possibility to change the operating system (Linux for instance) date , since the testing environment are isolated and dedicated per tester.</p>

<p>Unfortunately, this doesn't help a lot, since we face at least two problems : </p>

<p>1) Binding programs (Cobol) when the system date goes backward gives errors (tables not found, ...)</p>

<p>2) Functions created after the 'past' system date are also not usable....</p>

<p>For the point 1), we can set the date to present , then bind, then come back to past,
But for point 2), I didn't find a workaround.</p>

<p>Does anybody have experience  on this problem ? Any alternatives including free or proprietary software are welcome.</p>
",https://stackoverflow.com/questions/43497282/fake-the-current-date-timestamp-in-db2-luw-for-testing,"['testing', 'db2', 'db2-luw']",460,False,0,1
Cleaner way to do pytest fixture parameterization based on command-line switch?,"<p>I've technically already solved the problem I was working on, but I can't help but feel like my solution is ugly:</p>

<p>I've got a pytest suite that I can run in two modes: Local Mode (for developing tests; everything just runs on my dev box through Chrome), and Seriousface Regression Testing Mode (for CI; the suite gets run on a zillion browsers and OSes). I've got a command-line flag to toggle between the two modes, <code>--test-local</code>. If it's there, I run in local mode. If it's not there, I run in seriousface mode. Here's how I do it:</p>

<pre><code># contents of conftest.py
import pytest

def pytest_addoption(parser):
    parser.addoption(""--test-local"", action=""store_true"", default=False, help=""run locally instead of in seriousface mode"")

def pytest_generate_tests(metafunc):
    if ""dummy"" in metafunc.fixturenames:
        if metafunc.config.getoption(""--test-local""):
            driverParams = [(True, None)]
        else:
            driverParams = [(False, ""seriousface setting 1""), (False, ""seriousface setting 2"")]
        metafunc.parameterize(""dummy"", driverParams)

@pytest.fixture(scope=""function"")
def driver(dummy):
    _driver = makeDriverStuff(dummy[0], dummy[1])
    yield _driver
    _driver.cleanup()

@pytest.fixture
def dummy():
    pass
</code></pre>

<p>The problem is, that <code>dummy</code> fixture is hideous. I've tried having <code>pytest_generate_tests</code> parameterize the <code>driver</code> fixture directly, but it ends up <em>replacing</em> the fixture rather than just feeding stuff into it, so <code>cleanup()</code> never gets called when the test finishes. Using the dummy lets me replace the dummy with my parameter tuple, so that that gets passed into <code>driver()</code>.</p>

<p>But, to reiterate, what I have <em>does work</em>, it just feels like a janky hack.</p>
",https://stackoverflow.com/questions/46673162/cleaner-way-to-do-pytest-fixture-parameterization-based-on-command-line-switch,"['python', 'command-line-arguments', 'pytest', 'fixtures', 'parameterization']",1101,True,4,1
Details on Umbrella approach Integration Testing,"<p>I have been researching on the Umbrella Integration testing approach and most of the sites I can across seem to have the exact same definition for it:</p>

<blockquote>
  <p>The umbrella approach requires testing along functional data and control-flow paths. First, the inputs for functions are integrated in the bottom-up pattern discussed above. The outputs for each function are then integrated in the top-down manner. The primary advantage of this approach is the degree of support for early release of limited functionality. It also helps minimize the need for stubs and drivers. The potential weaknesses of this approach are significant, however, in that it can be less systematic than the other two approaches, leading to the need for more regression testing.</p>
</blockquote>

<p>However, this seems vague and I would like to have a better description as well as some advantages and disadvantages.</p>

<p>Some of the websites I came across:</p>

<p><a href=""http://www.technofunc.com/index.php/erp/178-what-is-integration-testing"" rel=""nofollow noreferrer"">http://www.technofunc.com/index.php/erp/178-what-is-integration-testing</a>
<a href=""https://msdn.microsoft.com/en-us/library/aa292128(v=vs.71).aspx"" rel=""nofollow noreferrer"">https://msdn.microsoft.com/en-us/library/aa292128(v=vs.71).aspx</a></p>
",https://stackoverflow.com/questions/43488076/details-on-umbrella-approach-integration-testing,"['testing', 'integration-testing']",283,False,3,0
Why is my custom exception wrapped in System.Exception?,"<p>I believe I'm following the correct process to implement a custom exception, but the exception arrives in the catch block wrapped in a System.Exception, so the handling for my custom exception doesn't execute.</p>

<p>I create the custom exception class (following examples found online):</p>

<pre><code>using System;
using System.Runtime.Serialization;
namespace La.Di.Da
{
    [Serializable]
    public class MyCustomException : Exception
    {
        public MyCustomException()
            : base()
        {
        }

        public MyCustomException(string message)
            : base(message)
        {
        }

    ...
}
</code></pre>

<p>I throw the exception, from a lower point in the stack:</p>

<pre><code>...
if (up == down)
{
    throw new MyCustomException(""Things are topsy-turvy."");
}
...
</code></pre>

<p>The exception is caught at an intermediate try-catch. I know such catching-logging-throwing is wrong practice but this code is in an existing method that's called a lot in this application, and regression testing the entire application for my small change isn't an option. Anyway, this catch-throw isn't causing the problem: The exception arrives in this catch already as a System.Exception wrapping my custom exception.</p>

<pre><code>try
{
    DoSomeStuff(();
}
catch (Exception ex)
{
    LogManager.Instance.LogException(ex);
    throw;
}
finally
{
    DoSomeCleanup();
}
</code></pre>

<p>I have code to catch the custom exception at the next catch up the stack. But the exception arrives as a System.Exception wrapping the custom exception, so my custom exception handling doesn't get executed.</p>

<pre><code>...
try
{
    CallAMethod();
}
catch MyCustomException(ex)
{
    LogManager.Instance.LogException(ex);
    ShowErrorMessage(ex.Message);
}
catch Exception(ex)
{
    throw ex;
}
</code></pre>

<p>I believe the exception I'm throwing shouldn't be wrapped, so I must be doing something wrong. Any suggestions?</p>
",https://stackoverflow.com/questions/45445016/why-is-my-custom-exception-wrapped-in-system-exception,"['c#', 'exception']",1175,True,1,3
Is there a common way to validate if a (xml based) spring configuration is valid?,"<p>Question: Is there a common way to validate if a (xml based) spring configuration is valid?</p>

<p>Further explanation:
With ""valid"" I mean not if the xml itself is valid (I don't talk about xsd validation), I mean more ""logical valid"", e.g. if all referenced classes are available, or if a specific reference is available / could be resolved.</p>

<p>The background of this question is a QA-process within a CI-environment for a spring-mvc application:</p>

<p>Assuming a developer have a typo in a class name, or a reference is not unique in a webcontext configuration file, and he commits this change. Now an automated build is triggered:</p>

<ol>
<li>The application compiles successfully</li>
<li>unit tests are ""green"" (since they don't need any spring configuration)</li>
<li>integration tests are ""green"" (since integration tests does not rely on webcontext configurations)</li>
<li>functional / regression testing starts</li>
</ol>

<p>In current setup we would note this simple typo in step 4 - but it is quite time consuming to reach this point.</p>

<p>It would be great to have a mechanism / tool which can validate if a spring context <strong>could</strong> be loaded in order to save some time.</p>
",https://stackoverflow.com/questions/42088207/is-there-a-common-way-to-validate-if-a-xml-based-spring-configuration-is-valid,"['java', 'spring', 'validation', 'spring-mvc']",304,False,1,2
How to get overview of shared library dependencies,"<p>We have several hundred microservices running on many tomcat servers. Common for all these tomcat servers and microservices is the use of a common library containing shared business logic.</p>

<p>When we change logic in the shared library, we sometimes break some microservices, even though we ensure backwards-compatible changes. We lack overview of which service is using which shared class.</p>

<p>The question is not about regression testing, but more about give the developer overview of impact of changing shared logic.</p>

<p>What is the best way to get this overview ? </p>

<p>We are using Eclipse, Java 8, RTC (jazz.net), Tomcat, Windows, Cygwin, Ant.</p>

<p>We could use Eclipse reference search, however this requires us to check out all microservices into the workspace and then let Eclipse resolve all references (which will take 10+ minutes)</p>

<p>It would be a preference to have a tool within Eclipse to avoid using external tools to get this overview.</p>

<p>I am not sure if it has to be a real-time search or if we find it sufficient to use documentation generated by a job ran in scheduled intervals.</p>

<p>What would you suggest ?</p>

<p>PS My need is part of the <a href=""https://en.wikipedia.org/wiki/Static_program_analysis"" rel=""nofollow noreferrer"">static program analysis</a> practice.</p>
",https://stackoverflow.com/questions/47555505/how-to-get-overview-of-shared-library-dependencies,"['java', 'shared-libraries']",57,False,0,0
How to associate a test result posted to VSTS with a testcase residing in VSTS?,"<p>We have an automation test framework written in Java. </p>

<p>At present, I can post a new test run to VSTS. </p>

<p>I can then post a new test result to the test run, eg: </p>

<pre><code>{'testCaseTitle':'vstsPostTest',
'automatedTestName':'myAutomatedTestName',
'outcome':'Passed',
'errorMessage':'successfully completed vstsPostTest'}
</code></pre>

<p>However, when viewing the test result entry in VSTS, the testCaseTitle always seems to be overridden with value: 'myTestCaseTitle'. </p>

<p>Thinking this may be because I haven't associated the posted result with a testcase that resides in VSTS, I have added the testCase id parameter, and specified the ID of a random existing testCase in VSTS, eg, </p>

<pre><code>{'testCaseTitle':'is title now necessary?',
'testCase'{'id':283},
'automatedTestName':'myAutomatedTestName',
'outcome':'Passed',
'errorMessage':'successfully completed vstsPostTest'}
</code></pre>

<p>My posted result still has the generic title 'myTestCaseTitle' - and I have seen nothing yet in VSTS which illustrates a link between the posted result and the specified testcase which resides in VSTS. </p>

<p>What else is necessary to:</p>

<p>a) Ensure that a posted result uses the specified testCaseTitle value (or receives it from the ID of the associated testCase)</p>

<p>b) See that either a testCase or story in VSTS is flagged as failing/passed, based on the latest testrun results.  (ie, identify where stories are failing as a result of automated regression testing) </p>

<p>Many thanks</p>
",https://stackoverflow.com/questions/45443272/how-to-associate-a-test-result-posted-to-vsts-with-a-testcase-residing-in-vsts,['azure-devops-rest-api'],668,True,0,2
Testing component in Android App SDLC?,"<p>""Automated testing is an integral part of the development lifecycle.""</p>

<p>In android app proejcts we've implemented MVP, Rx with Retrofit and Content Provider/SQLite, dagger. Every android apps will always have server communication, storing data in local database,  complex ui like naviagtion drawer and recycler view etc, and difficult navigation flow of application.</p>

<p>What we want to achieve?</p>

<ul>
<li>Few test cases which should be tested every time before we deliver the apk to client or release on play store?(20-30% automate testing)</li>
<li>List of test cases of business logic, which can not be auto tested because whatever reason like complex ui, navigation flow etc (40-60% manual testing)</li>
<li>Continuous Integration</li>
</ul>

<p>Based on above, there are few questions,</p>

<ul>
<li>What to test in auto and manual, how to decide that?</li>
<li>In automate testing, where to test in MVP - Model-View-Presenter layers?</li>
<li>What kind of general business logic should auto test for mobile apps - like registration, login, forgot password, update profile etc?</li>
<li>What type of testing should perform for android apps - unit testing, functional testing, integration testing, manual testing, performance testing, regression testing</li>
<li>Which tool to use - android testing support library, espresso, uiautomator, Robotium, roboelectric, appium, selendroid, mockito, JUnit</li>
</ul>

<p>(Feel free to improve check list as we don't know best practices for testing module in SDLC for android mobile app.) originally asked, <a href=""https://softwareengineering.stackexchange.com/questions/345061/testing-component-in-android-app-sdlc"">here</a>.</p>
",https://stackoverflow.com/questions/43066372/testing-component-in-android-app-sdlc,"['android', 'testing', 'continuous-integration', 'tdd', 'android-testing']",258,True,11,1
End-to-end testing of distributed applications,"<p>Consider there is a new scenario/workflow and I want to test it for the whole enterprise. This implies I have to create a separate testing environment where all services will be deployed.</p>

<p><strong>But how do I specify which branches of every repository must be built and deployed? What are the automation options?</strong></p>

<p>Let it be two repositories for the services <code>A</code> and <code>B</code>.
How many testing environments do I need?</p>

<ul>
<li><code>A.master-B.master</code> </li>
<li><code>A.master-B.feature</code> </li>
<li><code>A.feature-B.master</code></li>
<li><code>A.feature-B.feature</code></li>
</ul>

<p>It seems like some combinations may be unnecessary. For example if features of <code>A</code> and <code>B</code> are unrelated, <code>A.feature-B.feature</code> can be omitted.</p>

<p>So for every branch of repository <code>X</code> we at least should test integration with currently deployed versions of services. It is a regression testing. And it is more or less clear how to automate it as we do not need to change the configuration. Just build <code>X.featureN</code> get other currently deployed artefacts, deploy them to new environment, test. Do it regularly. Profit!   </p>

<p>But what about testing new scenario being developed?</p>

<p>In that case the set of branches for build and deployment must be provided explicitly. On the other hand each service has its own schedule, and feature branch is usually deleted after being merged into master. Can tags help here? We either find tag in master or in a feature branch (hopefully in a single one).</p>
",https://stackoverflow.com/questions/47348848/end-to-end-testing-of-distributed-applications,"['continuous-integration', 'integration-testing', 'distributed-computing', 'end-to-end']",54,False,1,0
Automated Hotfix Release with Semantic Versioning based off of Master Branch,"<p>I have a Python script that lives in my CI pipeline that is responsible for publishing branches and tags, publishing AAR's to our Maven Artifactory, uploading Javadoc, etc.</p>

<p>We used to follow a modified version of Git Flow where we would publish off of either a ""support/"" branch (for Long Term Support of a Minor Product Version, such as 'support/5.10') or a ""release/"" branch (for release regression testing.</p>

<p>My script largely relied upon the Git Branch name in order to determine Major/Minor/Patch version bumps.</p>

<p>Now, we are dropping the support branches and moving to a more vanilla Git Flow workflow where we will do HotFixes solely off of Master (well, we will still have release branches, but that problem is solved...)</p>

<p>However, I can't figure out a way to safely determine the patch version off of the Master branch, as it obviously has no identifying characteristics in it's name that we can scrub (I always felt a bit uneasy about the method we are using, but... it worked).</p>

<p>I can access the tags and always bump the highest one, but that's sketchy.</p>

<p>I can input a target version, but that gets in the way of CI and would force us to run this script manually.</p>

<p>Any other thoughts on how to approach this? Anyone already solved this problem?</p>
",https://stackoverflow.com/questions/45578001/automated-hotfix-release-with-semantic-versioning-based-off-of-master-branch,"['python', 'git', 'automation', 'continuous-integration', 'continuous-deployment']",413,True,0,1
Dojo InlineEditBox clears on click if initial value set programmatically,"<p>A Dojo <a href=""https://dojotoolkit.org/api/?qs=1.7/dijit/InlineEditBox"" rel=""nofollow noreferrer"">InlineEditBox</a> allows users to click on a piece of text, turning it into an edit box and allowing the text to be edited (and then the changes can be saved or cancelled).</p>

<p>In my case, I need to override the initial value of the text box programmatically (from a REST call, actually). A dojo bug (I assume) causes the InlineEditBox to be reset to the initial value when you click it, and you're left ""editing"" a text box with different text from the text that was in there before you clicked - not the best UX. Dojo seems to save the value when the InlineEditBox is first created <em>before</em> the value is set programmatically, and then applies that initial value when the box switches to edit mode.</p>

<p>So if I have a <code>div</code>, say with text ""initial"" and <code>id=""testDiv""</code>, and this in my JavaScript:</p>

<pre><code>require([""dijit/InlineEditBox"", ""dijit/form/Textarea"", ""dojo/domReady!""],
    function(InlineEditBox, Textarea) {
  var editBox = new InlineEditBox({
    editor: Textarea,
    autoSave: false
  }, ""testDiv"").startup();
  var editText = ""Click to edit text..."";
  dojo.byId(""testDiv"").innerHTML = editText; // &lt;-- what can I do instead?
});
</code></pre>

<p>Then in its normal state, the box contains ""Click to edit text..."", but when I click to edit that text, I'm left editing the text ""initial"" instead.</p>

<p>Here's a <a href=""http://jsfiddle.net/562guLke/3/"" rel=""nofollow noreferrer"">fiddle demonstrating the problem</a>.</p>

<p>So my question is: how do I set the ""saved value"" of a Dojo InlineEditBox to override the initial value it saves on creation? (In my case I leave the div empty and the box is cleared when in edit mode.) I've played around in the console and can see a bunch of things I can do with the box object, and I've looked through the documentation, but can't find a way to set the value other than assigning something to its <code>innerHTML</code>.</p>

<p>The call to retrieve the value I want to set is asynchronous, so I can't set it at the time the box is created, it would have to be just afterwards. Happy to consider moving from Dojo 1.7 to a newer version if there's no other way, but it would mean a fair bit of regression testing, so if possible I'd want this to work with 1.7.</p>
",https://stackoverflow.com/questions/43795911/dojo-inlineeditbox-clears-on-click-if-initial-value-set-programmatically,"['javascript', 'dojo']",121,True,0,1
"Android O native library (.so) ELF W+E warning, editing the binary file","<p>I have an (older) Android application which has its targetSDK set to 19, has a few native libraries (.so files) included and runs fine on devices up to API 23.</p>

<p>Running on an Android O device a build with still with targetSdk 19 and practically no code or manifest or any other kind of changes raises this warning:</p>

<p><a href=""https://i.stack.imgur.com/xF0yt.png"" rel=""nofollow noreferrer""><img src=""https://i.stack.imgur.com/xF0yt.png"" alt=""enter image description here""></a></p>

<p>... which mutates into an error if we attempt to run a build with targetSdk 26.</p>

<p>Now we have been asked to fix this warning and let the app on target 19 for the time being. The problem is our client does not have the source code of this native module so I started looking what these headers are and if it would be possible to change them without having the code and rebuilding the native library. And I found HT editor which allows changing the flags by directly editing the so file:</p>

<p><a href=""https://i.stack.imgur.com/o73Ib.png"" rel=""nofollow noreferrer""><img src=""https://i.stack.imgur.com/o73Ib.png"" alt=""enter image description here""></a></p>

<p>My question is, what are the repercussions of directly hacking into the binary file, generally I mean, I understand there could be specific problems related to my app maybe. </p>

<p>If the app is found to work fine after a thorough regression testing on more that one device, is there a higher probability of having it crash unexpectedly somewhere sometime because of this hack than because of a regular code change which may produce a bug not detected during testing?</p>

<p>What I am looking for an answer to is this - is this a viable solution for my client to use this application in production in case they are not able to obtain the code or new libraries properly built from the third party developer?</p>

<p>I found a few threads which ask about fixing this warning but none of them has a satisfying answer and none involve editing the binary file directly:</p>

<p><a href=""https://stackoverflow.com/questions/46678262/how-to-fix-w-e-load-segments-are-not-allowed-in-android-o-8-0"">How to fix &quot;W + E load segments are not allowed&quot; in Android O（8.0）</a></p>

<p><a href=""https://stackoverflow.com/questions/40504512/android-n-warning-against-so-file-having-we-segments"">Android N warning against .so file having W+E segments</a></p>

<p><a href=""https://stackoverflow.com/questions/45512293/how-to-compile-so-for-android-o-without-writable-and-executable-segments-how-t"">How to compile .so for Android O without Writable and Executable Segments? How to set specific ELF permissions?</a></p>

<p>Thank you for any input.</p>
",https://stackoverflow.com/questions/46971181/android-o-native-library-so-elf-we-warning-editing-the-binary-file,"['android', 'binary', 'native', 'executable', 'writable']",918,False,1,0
Desktop library for testing a real-time Android app,"<p>I've written a real-time application for Android that receives hundreds of input events per second and spits out a few output events per second. The input events drive state machines to produce the output events. I write both the input and output events to a file for each run. I want to use the files of runs that I deem valid for regression testing. I'll feed the recorded input events to the system and look for the expected output events. </p>

<p>My system receives events via a looper/handler and uses timers, but it doesn't otherwise depend on the Android API except for <code>android.util.log</code> for debugging purposes, which I can easily wrap.</p>

<p>Which desktop framework will give me the APIs I need? Will a JUnit test suffice? Does this need to be an instrumented test? Do I actually need to run some sort of mocker library? This is my first Android app and I'm still getting my bearings.</p>

<p>Ideally, I'd write a command line tool in Java so I can vary the parameters that govern testing. I doubt the kind of testing I have in mind is suitable for any generic test framework, as some intelligence is required for deciding when to attempt to match actual results with expected results and when to halt the test run. I suspect I'm just looking for suitable desktop libraries.</p>

<p>I think I see how to write another Android app that would do the job, but that looks a lot more complicated than doing it from a shell, and it would be a lot less convenient to use as well. My backup plan is to test my system below the looper API (my library's public API) by using regular Java thread messaging. (I want to feed events to the system at their original timing.)</p>

<p>Update: As I search around for an answer, it's become clear that I could write a JUnit test that runs all my real-time tests, but complaints of slow emulation concern me. Timing is crucial during these tests. On the other hand, the desktop computer could run background processes that interfere with timing, so maybe I do have to create an test harness that runs on the device. Hoping for advice...</p>
",https://stackoverflow.com/questions/41625120/desktop-library-for-testing-a-real-time-android-app,"['java', 'android', 'testing', 'real-time', 'android-looper']",139,False,1,0
Java (error) message when using undocumented matlab function &quot;uitree&quot;,"<p>I have setup a Matlab-function which uses the undocumented Matlab function ""uitree"". ""uitree"" exists yet since more than 10 years and is still (R2016b) ""offered"" by MATLAB to be used. I used the return value (handle) of ""uitree"" with some simple ""java"" functions for adding and removing tree-nodes during execution of my m-function. </p>

<p>But when processing one very big file (which I use for regression testing of my m-function) with my m-function I get the following (error) message, which is displayed in red color in the Matlab command window. This message does only appear sporadically, let's say when I process the same big file 10 times it occurs 1 time. And the message is exactly the same, also the numbers are 245 and 241. </p>

<p>This message does not cause any error within MATLAB and I didn't see any anomaly in the results of processing the big file, but I would like to understand what is the cause and what I can do to avoid it. Unfortunately due to reasons above (sporadic and doesn't cause any error) I had no luck when trying to add breakpoints and display messages to find the location. And unfortunately also that I am not at all familiar with Java, Swing and Awt :-(.</p>

<p>In difference to the similar question already raised ""<a href=""https://stackoverflow.com/questions/5554734/what-causes-a-java-lang-arrayindexoutofboundsexception-and-how-do-i-prevent-it"">What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it?</a>"" in my case it is occuring sporadic, so the message comes occasionally with one and the same file being processed.</p>

<p>Can anybody give me some hint, what it could be and what I can do else to find the cause of the problem?</p>

<h3>Java Message displayed in MATLAB command window</h3>

<pre><code>Exception in thread ""AWT-EventQueue-0"" java.lang.ArrayIndexOutOfBoundsException: 245 &gt;= 241
at java.util.Vector.removeElementAt(Unknown Source)
at javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.collapse(Unknown Source)
at javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.collapse(Unknown Source)
at javax.swing.tree.VariableHeightLayoutCache.setExpandedState(Unknown Source)
at javax.swing.plaf.basic.BasicTreeUI$Handler.treeCollapsed(Unknown Source)
at javax.swing.JTree.fireTreeCollapsed(Unknown Source)
at javax.swing.JTree.setExpandedState(Unknown Source)
at javax.swing.JTree.collapsePath(Unknown Source)
at com.mathworks.hg.peer.UITreePeer$4.run(UITreePeer.java:221)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
</code></pre>

<p>Here an overview of related m-functions and Java-functions that are used:</p>

<h3>Undocumented MATLAB functions used:</h3>

<pre><code>hTree = uitree
jTree = hTree.Tree
hTreeNode = uitreenode
</code></pre>

<p><code>hTree</code>     being of class: <code>javahandle_withcallbacks.com.mathworks.hg.peer.UITreePeer</code></p>

<p><code>jTree</code>     being of class: <code>javahandle_withcallbacks.com.mathworks.hg.peer.utils.UIMJTree</code></p>

<p><code>hTreeNode</code> being of class: <code>javahandle.com.mathworks.hg.peer.UITreeNode</code></p>

<h3>Java/MATLAB functions used:</h3>

<p>I don't know exactly what comes directly from Java and what is something in the interface between Java/MATLAB and implemented by MATLAB ... code snippets</p>

<pre><code>% For Tree Context Menu
hJTree= handle(jTree, 'CallbackProperties');
hJTree.MousePressedCallback= {@guiCallback_tree_mousePressed,sessionNum};

% ...

% Cell renderer ... Get a dummy color definition
bsc= jTree.getCellRenderer.getBackgroundSelectionColor;
jTree.getCellRenderer.setBackgroundSelectionColor(bsc.lightGray);
jTree.getCellRenderer.setBorderSelectionColor(bsc.lightGray);

% ...

treePath= jTree.getSelectionPath.getPath;
for i=2:length(treePath)
   lable= char(treePath(i).getValue);
end
</code></pre>

<h3>Further Java functions used:</h3>

<p><code>hTreeNode</code></p>

<ul>
<li><code>add, getChildCount, getChildAt, getValue, getLevel, getParent, setName, repaint</code></li>
</ul>

<p><code>hTree</code></p>

<ul>
<li><code>Position, NodeSelectedCallback, expand, collapse</code></li>
<li><code>getModel</code> using <code>insertNodeInto, removeNodeFromParent</code></li>
</ul>

<p><code>jTree</code></p>

<ul>
<li><code>isExpanded, setSelectionPath, isPathSelected, scrollPathToVisible</code></li>
<li>all called with argument <code>javax.swing.tree.TreePath(""pathnode"")</code></li>
</ul>
",https://stackoverflow.com/questions/41531861/java-error-message-when-using-undocumented-matlab-function-uitree,"['java', 'matlab', 'swing', 'awt']",431,False,0,0
Render website as texture in Unity3D on Android,"<p><strong>Quick Summary:</strong></p>
<p>I'm working on a VR application, and we want to render a website in 3D space in our VR scene, preferably on a texture. There are many ways to accomplish this on desktop (PC/Mac), but not on Android devices.</p>
<p><strong>Details:</strong></p>
<p>We have a working prototype on Windows that relies on Zen Fulcrum's <a href=""https://www.assetstore.unity3d.com/#!/content/55459"" rel=""nofollow noreferrer"">Embedded Browser plugin</a>, but we want to support Android devices such Google DayDream, Gear VR, and eventually the Android-based standalone headsets that will be released within the next year.</p>
<p>Here's a list of all the Unity webpage rendering solutions I've found so far:</p>
<ul>
<li><a href=""https://www.assetstore.unity3d.com/#!/content/55459"" rel=""nofollow noreferrer"">Embedded Browser</a> by Zen Fulcrum - supports Windows and OSX</li>
<li><a href=""https://www.assetstore.unity3d.com/en/#!/content/92605"" rel=""nofollow noreferrer"">UniWebView</a> by Yumigi - They <a href=""http://docs.uniwebview.com/#/latest/faq"" rel=""nofollow noreferrer"">do not support</a> rendering webpages to textures. Webpages are rendered on a flat layer on top of the graphics engine's rendering.</li>
<li><a href=""https://www.assetstore.unity3d.com/en/#!/content/57532"" rel=""nofollow noreferrer"">In-App Web Browser</a> by Piotr Zmudzinski - Appears to have the same limitation</li>
<li><a href=""https://www.assetstore.unity3d.com/en/#!/content/10895"" rel=""nofollow noreferrer"">Webkit for iOS</a> by Chestnut Games - Only works for iOS, their company website doesn't seem to work.</li>
<li><a href=""https://www.assetstore.unity3d.com/en/#!/content/7918"" rel=""nofollow noreferrer"">HTML Engine for NGUI &amp; Unity GUI</a> by ZHing - Doesn't appear to be a real web browser. It just seems like someone made some scripts that convert HTML into UI elements.</li>
<li><a href=""https://www.assetstore.unity3d.com/en/#!/content/29346"" rel=""nofollow noreferrer"">EasyWebViewTexture For Android</a> by JaeYunLee - I know some devs who used this but the project was mysteriously taken down and discontinued.</li>
<li><a href=""http://wiki.awesomium.net/unity/"" rel=""nofollow noreferrer"">Awesomium for Unity (Beware: dead/suspicious link)</a> by Khrona Software - Their wiki articles for Unity are mysteriously blank both on their <a href=""http://wiki.awesomium.net/unity/"" rel=""nofollow noreferrer"">wiki site</a> and on their <a href=""https://github.com/khrona/awesomium-net-wiki/tree/gh-pages/unity"" rel=""nofollow noreferrer"">GitHub</a>. The <a href=""http://www.awesomium.com/"" rel=""nofollow noreferrer"">entire awesomium website</a> has been shut down as well, and so has the <a href=""http://www.khrona.com/"" rel=""nofollow noreferrer"">Krhona Software</a> company website. They have a <a href=""https://github.com/khrona/UnityAwe"" rel=""nofollow noreferrer"">GitHub Repo</a> for their Unity integration but their readme says it only supports Windows &amp; Mac.</li>
<li><a href=""https://www.assetstore.unity3d.com/en/#!/content/3109"" rel=""nofollow noreferrer"">uWebKit3</a> by Mythos Labs - No longer available. Their original website no longer exists. Previous versions of uWebKit claimed to support Android. <a href=""https://forum.unity.com/threads/discontinued-uwebkit-chromium-webview-for-unity-5.193978/page-9#post-2662804"" rel=""nofollow noreferrer"">Their announcement</a> on the Unity forums about them closing down was very mysterious and abrupt. I found something on <a href=""https://github.com/dot123/uWebKit"" rel=""nofollow noreferrer"">GitHub</a> that claims to be uWebKit3, but the readme claims to only support PC and Mac.</li>
<li><a href=""https://docs.unrealengine.com/latest/INT/Engine/UMG/UserGuide/WidgetTypeReference/WebBrowser/"" rel=""nofollow noreferrer"">Unreal Engine 4's Web Browser Widget</a> - This is an experimental widget that's being built into UE4, and on desktop it renders webpages in the 3D world with little problems. Unfortunately, even though it claims to support Android, when you actually deploy to a device you'll find that the browser just gets rendered flat on top of the game engine rendering, not in the 3D world.</li>
</ul>
<p>I really can't find any info on why this is no longer supported on Android when it used to be supported. Maybe something changed on the Android stack? If I was to try messing with Chromium myself and get it to work on Android, would I just run into whatever dead-ends killed all these projects?</p>
<p>The Android SDK offers the native <a href=""https://developer.android.com/reference/android/webkit/WebView.html"" rel=""nofollow noreferrer"">WebView</a> component, which is rendered as an independent on-screen element that we can't really hook into. Google just released a preview for the <a href=""https://plus.google.com/u/1/+FrancoisBeaufort/posts/ZGeM6AggeLq"" rel=""nofollow noreferrer"">Chrome VR browser in Daydream</a>, but it's very early in development and I really don't think they plan to provide a solution for VR devs to use anytime soon. Oculus has the experimental <a href=""https://www.oculus.com/experiences/gear-vr/1290985657630933/"" rel=""nofollow noreferrer"">Carmel Browser</a> but it seems more focused on rendering WebVR than providing tools for VR devs to hook into. I've been in touch with someone from the <a href=""https://www.oculus.com/experiences/gear-vr/1257988667656584/"" rel=""nofollow noreferrer"">Oculus Web Browser</a> team (met him at PAX, lol), and they plan to release a feature to make it easier for devs to launch web pages that open in Gear VR's built-in Oculus Web Browser. But that's an app-switching scenario, it doesn't let you render a webpage in your own 3D scene.</p>
<p>One possibility that I'm considering exploring: what if we got a server to render webpages for users and stream that content back to their devices as texture data? It'd kinda be like what OnLive did with videogames, except you could tolerate more latency at times. It could use Selenium (or some other webdev visual regression testing tool) to handle the rendering... Eh, it sounds like a total pain to make, though, not sure if our company can afford to spend months on something like that. -_-</p>
<p>Any suggestions? Thanks!</p>
",https://stackoverflow.com/questions/46479953/render-website-as-texture-in-unity3d-on-android,"['android', 'unity-game-engine', 'browser', 'google-vr', 'daydream']",10122,True,9,2
